diff --git a/src/main/java/com/avaje/ebean/Ebean.java b/src/main/java/com/avaje/ebean/Ebean.java index 850ea6eed..4383b3d8d 100644 --- a/src/main/java/com/avaje/ebean/Ebean.java +++ b/src/main/java/com/avaje/ebean/Ebean.java @@ -671,26 +671,6 @@ public final class Ebean { serverMgr.getDefaultServer().saveManyToManyAssociations(ownerBean, propertyName); } - /** - * Save the associated collection or bean given the property name. - *
- * This is similar to performing a save cascade on a specific property - * manually/programmatically. - *
- *- * Note that you can turn on/off cascading for a transaction via - * {@link Transaction#setPersistCascade(boolean)} - *
- * - * @param ownerBean - * the bean instance holding the property we want to save - * @param propertyName - * the property we want to save - */ - public static void saveAssociation(Object ownerBean, String propertyName) { - serverMgr.getDefaultServer().saveAssociation(ownerBean, propertyName); - } - /** * Delete the bean. *diff --git a/src/main/java/com/avaje/ebean/EbeanServer.java b/src/main/java/com/avaje/ebean/EbeanServer.java index 3071535b5..68512a7a6 100644 --- a/src/main/java/com/avaje/ebean/EbeanServer.java +++ b/src/main/java/com/avaje/ebean/EbeanServer.java @@ -1487,44 +1487,6 @@ public interface EbeanServer { */ void saveManyToManyAssociations(Object ownerBean, String propertyName, Transaction transaction); - /** - * Save the associated collection or bean given the property name. - *
- * This is similar to performing a save cascade on a specific property - * manually. - *
- *- * Note that you can turn on/off cascading for a transaction via - * {@link Transaction#setPersistCascade(boolean)} - *
- * - * @param ownerBean - * the bean instance holding the property we want to save - * @param propertyName - * the property we want to save - */ - void saveAssociation(Object ownerBean, String propertyName); - - /** - * Save the associated collection or bean given the property name with a - * specific transaction. - *- * This is similar to performing a save cascade on a specific property - * manually. - *
- *- * Note that you can turn on/off cascading for a transaction via - * {@link Transaction#setPersistCascade(boolean)} - *
- * - * @param ownerBean - * the bean instance holding the property we want to save - * @param propertyName - * the property we want to save - */ - void saveAssociation(Object ownerBean, String propertyName, Transaction transaction); - - /** * Execute explicitly passing a transaction. */ diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java index 91688ac80..83aa6b2d5 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java @@ -1598,27 +1598,6 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { } } - public void saveAssociation(Object ownerBean, String propertyName) { - saveAssociation(ownerBean, propertyName, null); - } - - public void saveAssociation(Object ownerBean, String propertyName, Transaction t) { - - EntityBean owner = checkEntityBean(ownerBean); - - TransWrapper wrap = initTransIfRequired(t); - try { - SpiTransaction trans = wrap.transaction; - persister.saveAssociation(owner, propertyName, trans); - - wrap.commitIfCreated(); - - } catch (RuntimeException e) { - wrap.rollbackIfCreated(); - throw e; - } - } - @Override public int saveAll(Collection> beans, Transaction transaction) throws OptimisticLockException { return saveAllInternal(beans.iterator(), transaction); diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/Persister.java b/src/main/java/com/avaje/ebeaninternal/server/core/Persister.java index ed12aed8c..d2c7fc79e 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/Persister.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/Persister.java @@ -41,15 +41,6 @@ public interface Persister { */ void saveManyToManyAssociations(EntityBean ownerBean, String propertyName, Transaction t); - /** - * Save an association (OneToMany, ManyToOne, OneToOne or ManyToMany). - * - * @param parentBean the bean that owns the association. - * @param propertyName the name of the property to save. - * @param t the transaction to use. - */ - void saveAssociation(EntityBean parentBean, String propertyName, Transaction t); - /** * Delete the associations of a ManyToMany given the owner bean and the property name of the ManyToMany. */ diff --git a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java index f7f1dd151..3d89097f7 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java +++ b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java @@ -1086,39 +1086,6 @@ public final class DefaultPersister implements Persister { saveAssocManyIntersection(new SaveManyPropRequest(prop, ownerBean, (SpiTransaction) t), false); } - public void saveAssociation(EntityBean parentBean, String propertyName, Transaction t) { - - BeanDescriptor> descriptor = beanDescriptorManager.getBeanDescriptor(parentBean.getClass()); - SpiTransaction trans = (SpiTransaction) t; - - BeanProperty prop = descriptor.getBeanProperty(propertyName); - if (prop == null) { - String msg = "Could not find property [" + propertyName + "] on bean " + parentBean.getClass(); - throw new PersistenceException(msg); - } - - if (prop instanceof BeanPropertyAssocMany>) { - BeanPropertyAssocMany> manyProp = (BeanPropertyAssocMany>) prop; - saveMany(new SaveManyPropRequest(manyProp, parentBean, (SpiTransaction) t), true); - - } else if (prop instanceof BeanPropertyAssocOne>) { - BeanPropertyAssocOne> oneProp = (BeanPropertyAssocOne>) prop; - EntityBean assocBean = oneProp.getValueAsEntityBean(parentBean); - - int depth = oneProp.isOneToOneExported() ? 1 : -1; - int revertDepth = -1 * depth; - - trans.depth(depth); - saveRecurse(assocBean, t, parentBean, true, false); - trans.depth(revertDepth); - - } else { - String msg = "Expecting [" + prop.getFullBeanName() + "] to be a OneToMany, OneToOne, ManyToOne or ManyToMany property?"; - throw new PersistenceException(msg); - } - - } - /** * Save the additions and removals from a ManyToMany collection as inserts * and deletes from the intersection table. diff --git a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java index d6c35b7f5..bd8c4d905 100644 --- a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java +++ b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java @@ -628,16 +628,6 @@ public class TDSpiEbeanServer implements SpiEbeanServer { } - @Override - public void saveAssociation(Object ownerBean, String propertyName) { - - } - - @Override - public void saveAssociation(Object ownerBean, String propertyName, Transaction t) { - - } - @Override public boolean delete(Object bean, Transaction t) throws OptimisticLockException { return false; diff --git a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteCascadeFromParent.java b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteCascadeFromParent.java index 373541499..dc09ccba9 100644 --- a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteCascadeFromParent.java +++ b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteCascadeFromParent.java @@ -30,7 +30,7 @@ public class TestM2MDeleteCascadeFromParent extends BaseTestCase { b0.save(); c0.getBs().add(b0); - Ebean.saveAssociation(c0, "bs"); + Ebean.save(c0); SqlQuery sqlQuery = Ebean.createSqlQuery("select count(*) as count from mny_b_mny_c"); SqlRow unique = sqlQuery.findUnique(); diff --git a/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java b/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java index 6c5cb19b0..f04a0a36a 100644 --- a/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java +++ b/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java @@ -21,7 +21,7 @@ public class TestSaveAssociation extends BaseTestCase { m0.addDetail(new TSDetail("master1 detail1")); m0.addDetail(new TSDetail("master1 detail2")); - Ebean.saveAssociation(m0, "details"); + Ebean.save(m0); TSMaster m0Check = Ebean.find(TSMaster.class).fetch("details").where().idEq(m0.getId()) .findUnique();