diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java index 156b3a1b2..ac0b83a4b 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanPropertyAssocMany.java @@ -153,8 +153,9 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc { if (i > 0) { sb.append(", "); } - // these fkcolumns always on base table hence t0 as alias - sb.append("t0.").append(exportedProperties[i].getForeignDbColumn()); + // these fk columns are either on the intersection (int_) or base table (t0) + String fkTableAlias = isManyToMany() ? "int_" : "t0"; + sb.append(fkTableAlias).append(".").append(exportedProperties[i].getForeignDbColumn()); } if (fetchOrderBy != null) { sb.append(", ").append(fetchOrderBy); diff --git a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java index 38d275e29..f7698f031 100644 --- a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java +++ b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java @@ -1,5 +1,7 @@ package com.avaje.tests.m2m; +import java.util.List; + import javax.persistence.PersistenceException; import org.junit.Assert; @@ -27,6 +29,11 @@ public class TestM2MDeleteNoCascade extends BaseTestCase { Ebean.save(u0); + MnocUser loadedUser = Ebean.find(MnocUser.class, u0.getUserId()); + List validRoles = loadedUser.getValidRoles(); + + Assert.assertEquals(2, validRoles.size()); + try { Ebean.delete(u0); Assert.assertTrue("expecting an exception", false); diff --git a/src/test/java/com/avaje/tests/model/basic/MnocUser.java b/src/test/java/com/avaje/tests/model/basic/MnocUser.java index 124b409a2..c17a3cf6f 100644 --- a/src/test/java/com/avaje/tests/model/basic/MnocUser.java +++ b/src/test/java/com/avaje/tests/model/basic/MnocUser.java @@ -7,6 +7,7 @@ import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; +import javax.persistence.OrderBy; import javax.persistence.Version; @Entity @@ -22,6 +23,7 @@ public class MnocUser { // No cascade REMOVE @ManyToMany(cascade=CascadeType.PERSIST) + @OrderBy("roleName") List validRoles; public MnocUser() {