branch develop updated (f5e0a56c -> 73b78f31)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git from f5e0a56c Declare "when" as forbidden column name (hibernate fail on update) new 6f5786a6 Allow passing some properties to initialiaze new entities via TopiaDao#newInstance new 73b78f31 Persisting orphan should not be possible if model says so The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 73b78f3179d2c1b3de5f69b2a287ef166a41e102 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Aug 8 10:44:27 2018 +0200 Persisting orphan should not be possible if model says so fixes #663 commit 6f5786a687e0d05f3bf80f8945453d70f98e78a7 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Aug 8 10:33:30 2018 +0200 Allow passing some properties to initialiaze new entities via TopiaDao#newInstance Summary of changes: .../persistence/EntityVisitorExportXmlTest.java | 8 +++- .../mapping/test1/SimpleOneToManyRelationTest.java | 20 +++++---- .../SimpleOneToManyRelationWithRoleNamedTest.java | 16 ++++--- .../mapping/test11/SimpleOneToManyUniqueTest.java | 7 ++- .../SimpleOneToManyWithRoleNamedUniqueTest.java | 4 +- .../it/mapping/test5/OneToManyCompositionTest.java | 2 +- .../mapping/test6/SimpleOneToManyIndexedTest.java | 13 ++++-- .../SimpleOneToManyWithRoleNamedIndexedTest.java | 32 ++++++++----- .../mapping/test7/SimpleOneToManyOrderByTest.java | 17 ++++--- .../mapping/test7/SimpleOneToManyOrderedTest.java | 13 ++++-- .../org/nuiton/topia/persistence/TopiaDao.java | 14 +++++- .../persistence/internal/AbstractTopiaDao.java | 52 +++++++++++++--------- .../templates/EntityHibernateMappingGenerator.java | 8 +++- 13 files changed, 137 insertions(+), 69 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit 6f5786a687e0d05f3bf80f8945453d70f98e78a7 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Aug 8 10:33:30 2018 +0200 Allow passing some properties to initialiaze new entities via TopiaDao#newInstance --- .../org/nuiton/topia/persistence/TopiaDao.java | 14 +++++- .../persistence/internal/AbstractTopiaDao.java | 52 +++++++++++++--------- 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java index 6cbba4a9..736cec71 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaDao.java @@ -68,11 +68,23 @@ public interface TopiaDao<E extends TopiaEntity> extends Iterable<E> { void setBatchSize(int batchSize); /** - * @return Create a new instance of managed entity <strong>not persisted</strong>. + * @return instantiate of managed entity <strong>not persisted</strong>. * @since 2.3.1 */ E newInstance(); + /** + * @return instantiate of managed entity <strong>not persisted</strong>. + * @since 2.6 + */ + E newInstance(Map<String, Object> properties); + + /** + * @return instantiate of managed entity <strong>not persisted</strong>. + * @since 2.6 + */ + E newInstance(String propertyName, Object propertyValue, Object... otherPropertyNamesAndValues); + /** * Creates a new pager initialized for the first page of all data of the dao. * diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java index 2a95e134..cf52297c 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaDao.java @@ -207,6 +207,36 @@ public abstract class AbstractTopiaDao<E extends TopiaEntity> implements TopiaDa } } + @Override + public E newInstance(Map<String, Object> properties) { + E result = newInstance(); + + try { + for (Map.Entry<String, Object> e : properties.entrySet()) { + String propertyName = e.getKey(); + Object value = e.getValue(); + PropertyUtils.setProperty(result, propertyName, value); + } + } catch (IllegalAccessException eee) { + throw new IllegalArgumentException( + "Can't put properties on new Object", eee); + } catch (InvocationTargetException eee) { + throw new IllegalArgumentException( + "Can't put properties on new Object", eee); + } catch (NoSuchMethodException eee) { + throw new IllegalArgumentException( + "Can't put properties on new Object", eee); + } + return result; + } + + @Override + public E newInstance(String propertyName, Object propertyValue, Object... otherPropertyNamesAndValues) { + Map<String, Object> properties = + TopiaUtil.convertPropertiesArrayToMap(propertyName, propertyValue, otherPropertyNamesAndValues); + return newInstance(properties); + } + @Override public PaginationResult<E> initPagination(int pageSize) { PaginationResult<E> result = initPagination(newFromClause(), new HashMap<String, Object>(), pageSize); @@ -304,28 +334,8 @@ public abstract class AbstractTopiaDao<E extends TopiaEntity> implements TopiaDa @Override public E create(Map<String, Object> properties) { - - E result = newInstance(); - - try { - for (Map.Entry<String, Object> e : properties.entrySet()) { - String propertyName = e.getKey(); - Object value = e.getValue(); - PropertyUtils.setProperty(result, propertyName, value); - } - } catch (IllegalAccessException eee) { - throw new IllegalArgumentException( - "Can't put properties on new Object", eee); - } catch (InvocationTargetException eee) { - throw new IllegalArgumentException( - "Can't put properties on new Object", eee); - } catch (NoSuchMethodException eee) { - throw new IllegalArgumentException( - "Can't put properties on new Object", eee); - } - + E result = newInstance(properties); create(result); - return result; } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit 73b78f3179d2c1b3de5f69b2a287ef166a41e102 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Aug 8 10:44:27 2018 +0200 Persisting orphan should not be possible if model says so fixes #663 --- .../persistence/EntityVisitorExportXmlTest.java | 8 ++++-- .../mapping/test1/SimpleOneToManyRelationTest.java | 20 ++++++++------ .../SimpleOneToManyRelationWithRoleNamedTest.java | 16 ++++++----- .../mapping/test11/SimpleOneToManyUniqueTest.java | 7 +++-- .../SimpleOneToManyWithRoleNamedUniqueTest.java | 4 ++- .../it/mapping/test5/OneToManyCompositionTest.java | 2 +- .../mapping/test6/SimpleOneToManyIndexedTest.java | 13 ++++++--- .../SimpleOneToManyWithRoleNamedIndexedTest.java | 32 ++++++++++++++-------- .../mapping/test7/SimpleOneToManyOrderByTest.java | 17 ++++++++---- .../mapping/test7/SimpleOneToManyOrderedTest.java | 13 ++++++--- .../templates/EntityHibernateMappingGenerator.java | 8 ++++-- 11 files changed, 93 insertions(+), 47 deletions(-) diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java index a3f7d2de..aa90141f 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java @@ -74,15 +74,19 @@ public class EntityVisitorExportXmlTest { // employe EmployeTopiaDao employeDAO = newContext.getEmployeDao(); - Employe empl1 = employeDAO.create(Employe.PROPERTY_NAME, "boss", Employe.PROPERTY_SALARY, 30000); + Employe empl1 = employeDAO.newInstance(Employe.PROPERTY_NAME, "boss", Employe.PROPERTY_SALARY, 30000); + clCompany.addEmploye(empl1); + employeDAO.create(empl1); AddressTopiaDao adressDAO = newContext.getAddressDao(); Address addr1 = adressDAO.create(Address.PROPERTY_CITY, "Nantes", Address.PROPERTY_ADRESS, "12 Avenue Jules Vernes"); empl1.setAddress(addr1); - Employe empl2 = employeDAO.create(Employe.PROPERTY_NAME, "boss2", Employe.PROPERTY_SALARY, 29000); + Employe empl2 = employeDAO.newInstance(Employe.PROPERTY_NAME, "boss2", Employe.PROPERTY_SALARY, 29000); + clCompany.addEmploye(empl2); Address addr2 = adressDAO.create(Address.PROPERTY_CITY, "Nantes", Address.PROPERTY_ADRESS, "12 Avenue Jules Vernes"); empl2.setAddress(addr2); + employeDAO.create(empl2); // departement DepartmentTopiaDao departmentDAO = newContext.getDepartmentDao(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java index 1d660940..a778e6f2 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java @@ -64,11 +64,14 @@ public class SimpleOneToManyRelationTest extends AbstractMappingTest { Assert.assertEquals(0, nbA); Assert.assertEquals(0, nbB); - A1 a = aDAO.create(); - B1 b = bDAO.create(); + A1 a = aDAO.newInstance(); + B1 b = bDAO.newInstance(); a.addB1(b); + aDAO.create(a); + bDAO.create(b); + tx.commit(); nbA = aDAO.count(); @@ -87,6 +90,7 @@ public class SimpleOneToManyRelationTest extends AbstractMappingTest { Assert.assertEquals(b, bBis); Assert.assertEquals(aBis.getB1().iterator().next(), bBis); } + @Test public void delete() throws TopiaException { @@ -98,19 +102,19 @@ public class SimpleOneToManyRelationTest extends AbstractMappingTest { Assert.assertEquals(1, nbA); Assert.assertEquals(1, nbB); - A1 a = aDAO.findAll().get(0); - aDAO.delete(a); + B1 b = bDAO.findAll().get(0); + bDAO.delete(b); tx.commit(); nbA = aDAO.count(); nbB = bDAO.count(); - Assert.assertEquals(0, nbA); - Assert.assertEquals(1, nbB); + Assert.assertEquals(1, nbA); + Assert.assertEquals(0, nbB); - B1 b = bDAO.findAll().get(0); - bDAO.delete(b); + A1 a = aDAO.findAll().get(0); + aDAO.delete(a); tx.commit(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java index fa23389d..bbeea9d5 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java @@ -65,10 +65,12 @@ public class SimpleOneToManyRelationWithRoleNamedTest extends AbstractMappingTes Assert.assertEquals(0, nbB); A11 a = aDAO.create(); - B11 b = bDAO.create(); + B11 b = bDAO.newInstance(); a.addRoleB11(b); + bDAO.create(b); + tx.commit(); nbA = aDAO.count(); @@ -99,19 +101,19 @@ public class SimpleOneToManyRelationWithRoleNamedTest extends AbstractMappingTes Assert.assertEquals(1, nbA); Assert.assertEquals(1, nbB); - A11 a = aDAO.findAll().get(0); - aDAO.delete(a); + B11 b = bDAO.findAll().get(0); + bDAO.delete(b); tx.commit(); nbA = aDAO.count(); nbB = bDAO.count(); - Assert.assertEquals(0, nbA); - Assert.assertEquals(1, nbB); + Assert.assertEquals(1, nbA); + Assert.assertEquals(0, nbB); - B11 b = bDAO.findAll().get(0); - bDAO.delete(b); + A11 a = aDAO.findAll().get(0); + aDAO.delete(a); tx.commit(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java index 895ae659..2289707d 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java @@ -67,12 +67,15 @@ public class SimpleOneToManyUniqueTest extends AbstractMappingTest { Assert.assertEquals(0, nbA); Assert.assertEquals(0, nbB); - A11A a = aDAO.create(); - B11A b = bDAO.create(); + A11A a = aDAO.newInstance(); + B11A b = bDAO.newInstance(); a.addB11A(b); a.addB11A(b); + aDAO.create(a); + bDAO.create(b); + tx.commit(); nbA = aDAO.count(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java index 0645271c..68fbffa0 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java @@ -69,11 +69,13 @@ public class SimpleOneToManyWithRoleNamedUniqueTest extends AbstractMappingTest Assert.assertEquals(0, nbB); A11B a = aDAO.create(); - B11B b = bDAO.create(); + B11B b = bDAO.newInstance(); a.addRoleB111(b); a.addRoleB111(b); + bDAO.create(b); + tx.commit(); nbA = aDAO.count(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java index 27c3beb0..e96c86da 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java @@ -65,7 +65,7 @@ public class OneToManyCompositionTest extends AbstractMappingTest { Assert.assertEquals(0, nbB); A5 a = aDAO.create(); - B5 b = bDAO.create(); + B5 b = bDAO.newInstance(); a.addB5(b); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java index fae03107..4c424ed6 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java @@ -68,12 +68,17 @@ public class SimpleOneToManyIndexedTest extends AbstractMappingTest { Assert.assertEquals(0, nbB); A6 a = aDAO.create(); - B6 b = bDAO.create(); - B6 b2 = bDAO.create(); - B6 b3 = bDAO.create(); + B6 b = bDAO.newInstance(); + B6 b2 = bDAO.newInstance(); + B6 b3 = bDAO.newInstance(); a.addB6(b); a.addB6(b2); + a.addB6(b3); + + bDAO.create(b); + bDAO.create(b2); + bDAO.create(b3); tx.commit(); @@ -85,7 +90,7 @@ public class SimpleOneToManyIndexedTest extends AbstractMappingTest { A6 aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(2, aBis.sizeB6()); + Assert.assertEquals(3, aBis.sizeB6()); List<B6> bs = aBis.getB6(); Assert.assertEquals(b, bs.get(0)); Assert.assertEquals(b2, bs.get(1)); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java index f732a85d..4b67b9b7 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java @@ -68,12 +68,17 @@ public class SimpleOneToManyWithRoleNamedIndexedTest extends AbstractMappingTest Assert.assertEquals(0, nbB); A61 a = aDAO.create(); - B61 b = bDAO.create(); - B61 b2 = bDAO.create(); - B61 b3 = bDAO.create(); + B61 b = bDAO.newInstance(); + B61 b2 = bDAO.newInstance(); + B61 b3 = bDAO.newInstance(); a.addRoleB61(b); a.addRoleB61(b2); + a.addRoleB61(b3); + + bDAO.create(b); + bDAO.create(b2); + bDAO.create(b3); tx.commit(); @@ -85,15 +90,17 @@ public class SimpleOneToManyWithRoleNamedIndexedTest extends AbstractMappingTest A61 aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(2, aBis.sizeRoleB61()); + Assert.assertEquals(3, aBis.sizeRoleB61()); List<B61> bs = aBis.getRoleB61(); Assert.assertEquals(b, bs.get(0)); Assert.assertEquals(b2, bs.get(1)); + Assert.assertEquals(b3, bs.get(2)); // change order List<B61> bsBis; bsBis = Lists.newArrayList(); + bsBis.add(b3); bsBis.add(b2); bsBis.add(b); a.setRoleB61(bsBis); @@ -101,14 +108,16 @@ public class SimpleOneToManyWithRoleNamedIndexedTest extends AbstractMappingTest aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(2, aBis.sizeRoleB61()); + Assert.assertEquals(3, aBis.sizeRoleB61()); bs = aBis.getRoleB61(); - Assert.assertEquals(b2, bs.get(0)); - Assert.assertEquals(b, bs.get(1)); + Assert.assertEquals(b3, bs.get(0)); + Assert.assertEquals(b2, bs.get(1)); + Assert.assertEquals(b, bs.get(2)); // rechange order bsBis = Lists.newArrayList(); + bsBis.add(b2); bsBis.add(b3); bsBis.add(b2); bsBis.add(b); @@ -117,11 +126,12 @@ public class SimpleOneToManyWithRoleNamedIndexedTest extends AbstractMappingTest aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(3, aBis.sizeRoleB61()); + Assert.assertEquals(4, aBis.sizeRoleB61()); bs = aBis.getRoleB61(); - Assert.assertEquals(b3, bs.get(0)); - Assert.assertEquals(b2, bs.get(1)); - Assert.assertEquals(b, bs.get(2)); + Assert.assertEquals(b2, bs.get(0)); + Assert.assertEquals(b3, bs.get(1)); + Assert.assertEquals(b2, bs.get(2)); + Assert.assertEquals(b, bs.get(3)); } } \ No newline at end of file diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java index a46254a5..451eee15 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java @@ -70,12 +70,17 @@ public class SimpleOneToManyOrderByTest extends AbstractMappingTest { Assert.assertEquals(0, nbB); A71 a = aDAO.create(); - B71 b = bDAO.create(B71.PROPERTY_NAME, "A"); - B71 b2 = bDAO.create(B71.PROPERTY_NAME, "B"); - B71 b3 = bDAO.create(B71.PROPERTY_NAME, "C"); + B71 b = bDAO.newInstance(B71.PROPERTY_NAME, "A"); + B71 b2 = bDAO.newInstance(B71.PROPERTY_NAME, "B"); + B71 b3 = bDAO.newInstance(B71.PROPERTY_NAME, "C"); a.addB71(b); a.addB71(b2); + a.addB71(b3); + + bDAO.create(b); + bDAO.create(b2); + bDAO.create(b3); tx.commit(); @@ -87,7 +92,7 @@ public class SimpleOneToManyOrderByTest extends AbstractMappingTest { A71 aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(2, aBis.sizeB71()); + Assert.assertEquals(3, aBis.sizeB71()); Collection<B71> bs = aBis.getB71(); Iterator<B71> iterator = bs.iterator(); Assert.assertEquals(b, iterator.next()); @@ -98,6 +103,7 @@ public class SimpleOneToManyOrderByTest extends AbstractMappingTest { bsBis = Lists.newArrayList(); bsBis.add(b2); + bsBis.add(b3); bsBis.add(b); aBis.setB71(bsBis); tx.commit(); @@ -106,11 +112,12 @@ public class SimpleOneToManyOrderByTest extends AbstractMappingTest { aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(2, aBis.sizeB71()); + Assert.assertEquals(3, aBis.sizeB71()); bs = aBis.getB71(); iterator = bs.iterator(); Assert.assertEquals(b, iterator.next()); Assert.assertEquals(b2, iterator.next()); + Assert.assertEquals(b3, iterator.next()); // rechange order diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java index cc11f4c1..c5c9295d 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java @@ -68,12 +68,17 @@ public class SimpleOneToManyOrderedTest extends AbstractMappingTest { Assert.assertEquals(0, nbB); A7 a = aDAO.create(); - B7 b = bDAO.create(); - B7 b2 = bDAO.create(); - B7 b3 = bDAO.create(); + B7 b = bDAO.newInstance(); + B7 b2 = bDAO.newInstance(); + B7 b3 = bDAO.newInstance(); a.addB7(b); a.addB7(b2); + a.addB7(b3); + + bDAO.create(b); + bDAO.create(b2); + bDAO.create(b3); tx.commit(); @@ -85,7 +90,7 @@ public class SimpleOneToManyOrderedTest extends AbstractMappingTest { A7 aBis = aDAO.forTopiaIdEquals(a.getTopiaId()).findUnique(); Assert.assertEquals(a, aBis); - Assert.assertEquals(2, aBis.sizeB7()); + Assert.assertEquals(3, aBis.sizeB7()); List<B7> bs = aBis.getB7(); Assert.assertEquals(b, bs.get(0)); Assert.assertEquals(b2, bs.get(1)); diff --git a/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java b/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java index 7a447551..bede6f29 100644 --- a/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java +++ b/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java @@ -739,16 +739,20 @@ public class EntityHibernateMappingGenerator extends ObjectModelGenerator { String columnName = templateHelper.getDbName(attr); foreignKeyAttribute = " " + generateFromTagValue(HIBERNATE_ATTRIBUTE_FOREIGN_KEY, classContext.getForeignKeyName(columnName)).trim(); } + String notNullAttribute = ""; + if (attr.getReverseAttribute().getMinMultiplicity() > 0) { + notNullAttribute = " " + HIBERNATE_ATTRIBUTE_NOT_NULL + "=\"true\" "; + } if (needsIndex) { /*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=inverse%><%=lazy%><%=cascade%>> -<%=prefix%> <key column="<%=reverseAttrDBName%>"<%=foreignKeyAttribute%>/> +<%=prefix%> <key column="<%=reverseAttrDBName%>"<%=foreignKeyAttribute%><%=notNullAttribute%>/> <%=prefix%> <list-index column="<%=reverseAttrDBName%>_idx"/> <%=prefix%> <one-to-many class="<%=attrType%>"/> <%=prefix%> </<%=collType%>> }*/ }else { /*{<%=prefix%> <<%=collType%> name="<%=attrName%>" <%=inverse%><%=orderBy%><%=fetch%><%=lazy%><%=cascade%>> -<%=prefix%> <key column="<%=reverseAttrDBName%>"<%=foreignKeyAttribute%>/> +<%=prefix%> <key column="<%=reverseAttrDBName%>"<%=foreignKeyAttribute%><%=notNullAttribute%>/> <%=prefix%> <one-to-many class="<%=attrType%>"/> <%=prefix%> </<%=collType%>> }*/ -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm