diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java index cb741dd74..94cdfbd0f 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java @@ -55,6 +55,10 @@ class AnnotationAssocManys extends AnnotationParser { OneToMany oneToMany = get(prop, OneToMany.class); if (oneToMany != null) { readToOne(oneToMany, prop); + if (oneToMany.orphanRemoval()) { + prop.setModifyListenMode(ModifyListenMode.REMOVALS); + prop.getCascadeInfo().setDelete(true); + } PrivateOwned privateOwned = get(prop, PrivateOwned.class); if (privateOwned != null) { prop.setModifyListenMode(ModifyListenMode.REMOVALS); diff --git a/src/test/java/com/avaje/tests/model/basic/TSMaster.java b/src/test/java/com/avaje/tests/model/basic/TSMaster.java index 9de0b7b0d..cf06de99c 100644 --- a/src/test/java/com/avaje/tests/model/basic/TSMaster.java +++ b/src/test/java/com/avaje/tests/model/basic/TSMaster.java @@ -1,7 +1,5 @@ package com.avaje.tests.model.basic; -import com.avaje.ebean.annotation.PrivateOwned; - import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -29,8 +27,7 @@ public class TSMaster { boolean active; - @OneToMany(cascade = CascadeType.ALL, mappedBy = "master") - @PrivateOwned + @OneToMany(cascade = CascadeType.ALL, mappedBy = "master", orphanRemoval = true) List details; public Integer getId() {