diff --git a/pom.xml b/pom.xml
index cd0bce45b..4c4cb7a95 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,7 +118,7 @@
io.ebean
ebean-annotation
- 5.1
+ 6.1
diff --git a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java
index 55640603b..829377ff0 100644
--- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java
+++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java
@@ -3,7 +3,6 @@ package io.ebeaninternal.server.deploy.parse;
import io.ebean.annotation.DbForeignKey;
import io.ebean.annotation.FetchPreference;
import io.ebean.annotation.HistoryExclude;
-import io.ebean.annotation.PrivateOwned;
import io.ebean.annotation.Where;
import io.ebean.bean.BeanCollection.ModifyListenMode;
import io.ebean.config.BeanNotRegisteredException;
@@ -88,12 +87,6 @@ class AnnotationAssocManys extends AnnotationParser {
prop.setModifyListenMode(ModifyListenMode.REMOVALS);
prop.getCascadeInfo().setDelete(true);
}
- PrivateOwned privateOwned = get(prop, PrivateOwned.class);
- if (privateOwned != null) {
- prop.setOrphanRemoval();
- prop.setModifyListenMode(ModifyListenMode.REMOVALS);
- prop.getCascadeInfo().setDelete(privateOwned.cascadeRemove());
- }
OrderColumn orderColumn = get(prop, OrderColumn.class);
if (orderColumn != null) {
// need to cascade as we set the order on cascade
diff --git a/src/test/java/org/tests/cascade/TestPrivateOwnedNoCascadeRemove.java b/src/test/java/org/tests/cascade/TestPrivateOwnedNoCascadeRemove.java
deleted file mode 100644
index 473f96d88..000000000
--- a/src/test/java/org/tests/cascade/TestPrivateOwnedNoCascadeRemove.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.tests.cascade;
-
-import io.ebean.BaseTestCase;
-import io.ebean.Ebean;
-import io.ebean.annotation.IgnorePlatform;
-import io.ebean.annotation.Platform;
-import io.ebean.bean.BeanCollection;
-import org.tests.model.basic.TSDetailTwo;
-import org.tests.model.basic.TSMasterTwo;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.util.List;
-import java.util.Set;
-
-public class TestPrivateOwnedNoCascadeRemove extends BaseTestCase {
-
- @IgnorePlatform(Platform.NUODB)
- @Test
- public void test() {
-
- TSMasterTwo m0 = new TSMasterTwo();
- m0.setName("m1");
-
- m0.addDetail(new TSDetailTwo("m1 detail 1"));
- m0.addDetail(new TSDetailTwo("m1 detail 2"));
-
- Ebean.save(m0);
-
- TSMasterTwo master = Ebean.find(TSMasterTwo.class, m0.getId());
- List details = master.getDetails();
-
- TSDetailTwo removedDetail = details.remove(1);
-
- BeanCollection> bc = (BeanCollection>) details;
- Set> modifyRemovals = bc.getModifyRemovals();
-
- Assert.assertNotNull(modifyRemovals);
- Assert.assertTrue(modifyRemovals.size() == 1);
- Assert.assertTrue(modifyRemovals.contains(removedDetail));
-
- Ebean.save(master);
-
- TSMasterTwo masterReload = Ebean.find(TSMasterTwo.class, m0.getId());
- List detailsReload = masterReload.getDetails();
-
- // the removed bean has really been removed
- Assert.assertTrue(detailsReload.size() == 1);
-
- try {
- Ebean.delete(masterReload);
- Assert.fail("delete should error");
- } catch (Exception e) {
- Assert.assertTrue("delete failed", true);
- }
- }
-
-}
diff --git a/src/test/java/org/tests/inheritance/OrganizationTreeNode.java b/src/test/java/org/tests/inheritance/OrganizationTreeNode.java
index ae8d4b4a6..f03850f1c 100644
--- a/src/test/java/org/tests/inheritance/OrganizationTreeNode.java
+++ b/src/test/java/org/tests/inheritance/OrganizationTreeNode.java
@@ -1,13 +1,12 @@
package org.tests.inheritance;
-import javax.persistence.CascadeType;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.validation.constraints.NotNull;
-import io.ebean.annotation.PrivateOwned;
+import static javax.persistence.CascadeType.ALL;
+import static javax.persistence.FetchType.LAZY;
/**
* Model class to reference an organization tree node.
@@ -22,9 +21,8 @@ public class OrganizationTreeNode {
private String name;
- @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parentTreeNode")
+ @OneToOne(cascade = ALL, fetch = LAZY, mappedBy = "parentTreeNode", orphanRemoval = true)
@NotNull
- @PrivateOwned
private OrganizationNode organizationNode;
public Long getId() {
diff --git a/src/test/java/org/tests/model/basic/AnimalShelter.java b/src/test/java/org/tests/model/basic/AnimalShelter.java
index f585c9dde..761a8d4c7 100644
--- a/src/test/java/org/tests/model/basic/AnimalShelter.java
+++ b/src/test/java/org/tests/model/basic/AnimalShelter.java
@@ -1,14 +1,13 @@
package org.tests.model.basic;
-import io.ebean.annotation.PrivateOwned;
-
-import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Version;
import java.util.List;
+import static javax.persistence.CascadeType.PERSIST;
+
@Entity
public class AnimalShelter {
@@ -20,8 +19,7 @@ public class AnimalShelter {
String name;
- @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "shelter")
- @PrivateOwned
+ @OneToMany(cascade = PERSIST, mappedBy = "shelter", orphanRemoval = true)
List animals;
public Long getId() {
diff --git a/src/test/java/org/tests/model/basic/TMapSuperEntity.java b/src/test/java/org/tests/model/basic/TMapSuperEntity.java
index 10d46ac47..04a054372 100644
--- a/src/test/java/org/tests/model/basic/TMapSuperEntity.java
+++ b/src/test/java/org/tests/model/basic/TMapSuperEntity.java
@@ -1,14 +1,11 @@
package org.tests.model.basic;
-import io.ebean.annotation.UpdateMode;
-
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "t_mapsuper1")
-@UpdateMode(updateChangesOnly = true)
public class TMapSuperEntity extends TMappedSuper2 {
private static final long serialVersionUID = 1L;
diff --git a/src/test/java/org/tests/model/basic/TSDetailTwo.java b/src/test/java/org/tests/model/basic/TSDetailTwo.java
deleted file mode 100644
index 4ef810351..000000000
--- a/src/test/java/org/tests/model/basic/TSDetailTwo.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.tests.model.basic;
-
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-
-/**
- * A basic entity to test simple things.
- */
-@Entity
-@Table(name = "ts_detail_two")
-public class TSDetailTwo {
-
- @Id
- Integer id;
-
- String name;
-
- String description;
-
- boolean active;
-
- @ManyToOne
- TSMasterTwo master;
-
- public TSDetailTwo(String name) {
- this.name = name;
- }
-
- public TSDetailTwo() {
-
- }
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public boolean isActive() {
- return active;
- }
-
- public void setActive(boolean active) {
- this.active = active;
- }
-
- public TSMasterTwo getMaster() {
- return master;
- }
-
- public void setMaster(TSMasterTwo master) {
- this.master = master;
- }
-}
diff --git a/src/test/java/org/tests/model/basic/TSMasterTwo.java b/src/test/java/org/tests/model/basic/TSMasterTwo.java
deleted file mode 100644
index 471e5ce07..000000000
--- a/src/test/java/org/tests/model/basic/TSMasterTwo.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.tests.model.basic;
-
-import io.ebean.annotation.PrivateOwned;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A basic entity to test simple things.
- */
-@Entity
-@Table(name = "ts_master_two")
-public class TSMasterTwo {
-
- @Id
- Integer id;
-
- String name;
-
- String description;
-
- boolean active;
-
- @OneToMany(cascade = CascadeType.ALL, mappedBy = "master")
- @PrivateOwned(cascadeRemove = false)
- List details;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public boolean isActive() {
- return active;
- }
-
- public void setActive(boolean active) {
- this.active = active;
- }
-
- public List getDetails() {
- return details;
- }
-
- public void setDetails(List details) {
- this.details = details;
- }
-
- public void addDetail(TSDetailTwo detail) {
- if (details == null) {
- details = new ArrayList<>();
- }
- details.add(detail);
- }
-}
diff --git a/src/test/java/org/tests/model/embedded/EEmbOuter.java b/src/test/java/org/tests/model/embedded/EEmbOuter.java
index d573e22b1..1ae4da057 100644
--- a/src/test/java/org/tests/model/embedded/EEmbOuter.java
+++ b/src/test/java/org/tests/model/embedded/EEmbOuter.java
@@ -1,7 +1,5 @@
package org.tests.model.embedded;
-import io.ebean.annotation.PrivateOwned;
-
import javax.persistence.CascadeType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
@@ -20,8 +18,7 @@ public class EEmbOuter {
@Version
private int updateCount;
- @OneToMany(cascade = CascadeType.ALL)
- @PrivateOwned
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
List inners;
@Embedded
diff --git a/src/test/java/org/tests/model/selfref/ResourceFile.java b/src/test/java/org/tests/model/selfref/ResourceFile.java
index b8e9b964f..3be5e7674 100644
--- a/src/test/java/org/tests/model/selfref/ResourceFile.java
+++ b/src/test/java/org/tests/model/selfref/ResourceFile.java
@@ -1,7 +1,5 @@
package org.tests.model.selfref;
-import io.ebean.annotation.PrivateOwned;
-
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -23,8 +21,7 @@ public class ResourceFile extends BaseResourceFile {
@JoinColumn(name = "parentresourcefileid", nullable = true)
private ResourceFile parent;
- @OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY, mappedBy = "parent")
- @PrivateOwned
+ @OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY, mappedBy = "parent", orphanRemoval = true)
private Set alternatives = new HashSet<>();
@Column(name = "name", length = 128, nullable = false)