This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch STABLE-4.2 in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/STABLE-4.2 by this push: new 394f63c61 CAY-2838 Vertical Inheritance: Problem setting db attribute to null via flattened path 394f63c61 is described below commit 394f63c61de003af581911bd1b61816f7a12a5b7 Author: Nikita Timofeev <stari...@gmail.com> AuthorDate: Thu Feb 29 13:57:26 2024 +0400 CAY-2838 Vertical Inheritance: Problem setting db attribute to null via flattened path --- .../cayenne/access/VerticalInheritanceIT.java | 54 ++++++++++------------ 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java index 7103b7fee..eba76fb85 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java @@ -33,6 +33,7 @@ import org.apache.cayenne.testdo.inheritance_vertical.*; import org.apache.cayenne.unit.di.server.CayenneProjects; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.junit.Before; import org.junit.Test; import java.sql.SQLException; @@ -57,6 +58,20 @@ public class VerticalInheritanceIT extends ServerCase { @Inject protected ServerRuntime runtime; + TableHelper ivAbstractTable; + + TableHelper ivConcreteTable; + + @Before + public void setup() { + ivAbstractTable = new TableHelper(dbHelper, "IV_ABSTRACT"); + ivAbstractTable.setColumns("ID", "PARENT_ID", "TYPE") + .setColumnTypes(Types.INTEGER, Types.INTEGER, Types.CHAR); + ivConcreteTable = new TableHelper(dbHelper, "IV_CONCRETE"); + ivConcreteTable.setColumns("ID", "NAME", "RELATED_ABSTRACT_ID") + .setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.INTEGER); + } + @Test public void testInsert_Root() throws Exception { @@ -595,7 +610,7 @@ public class VerticalInheritanceIT extends ServerCase { } @Test - public void testUpdateWithRelationship() { + public void testUpdateWithRelationship() throws SQLException { IvConcrete parent1 = context.newObject(IvConcrete.class); parent1.setName("Parent1"); context.commitChanges(); @@ -615,15 +630,15 @@ public class VerticalInheritanceIT extends ServerCase { assertEquals(parent2, child.getParent()); // Manually delete child to prevent a foreign key constraint failure while cleaning MySQL db - context.deleteObject(child); - context.commitChanges(); + ivConcreteTable.deleteAll(); + ivAbstractTable.deleteAll(); } /** * @link https://issues.apache.org/jira/browse/CAY-2838 */ @Test - public void testNullifyFlattenedAttribute() { + public void testNullifyFlattenedAttribute() throws SQLException { IvConcrete concrete = context.newObject(IvConcrete.class); concrete.setName("Concrete"); context.commitChanges(); @@ -639,6 +654,9 @@ public class VerticalInheritanceIT extends ServerCase { IvConcrete concreteFetched = SelectById.query(IvConcrete.class, id).selectOne(cleanContext); assertNull(concreteFetched.getName()); } + + ivConcreteTable.deleteAll(); + ivAbstractTable.deleteAll(); } @Test @@ -667,14 +685,6 @@ public class VerticalInheritanceIT extends ServerCase { @Test public void testDeleteFlattenedNoValues() throws SQLException { - TableHelper ivAbstractTable = new TableHelper(dbHelper, "IV_ABSTRACT"); - ivAbstractTable.setColumns("ID", "PARENT_ID", "TYPE") - .setColumnTypes(Types.INTEGER, Types.INTEGER, Types.CHAR); - - TableHelper ivConcreteTable = new TableHelper(dbHelper, "IV_CONCRETE"); - ivConcreteTable.setColumns("ID", "NAME") - .setColumnTypes(Types.INTEGER, Types.VARCHAR); - ivAbstractTable.insert(1, null, "S"); IvConcrete concrete = SelectById.query(IvConcrete.class, 1).selectOne(context); @@ -690,16 +700,8 @@ public class VerticalInheritanceIT extends ServerCase { @Test public void testDeleteFlattenedNullValues() throws SQLException { - TableHelper ivAbstractTable = new TableHelper(dbHelper, "IV_ABSTRACT"); - ivAbstractTable.setColumns("ID", "PARENT_ID", "TYPE") - .setColumnTypes(Types.INTEGER, Types.INTEGER, Types.CHAR); - - TableHelper ivConcreteTable = new TableHelper(dbHelper, "IV_CONCRETE"); - ivConcreteTable.setColumns("ID", "NAME") - .setColumnTypes(Types.INTEGER, Types.VARCHAR); - ivAbstractTable.insert(1, null, "S"); - ivConcreteTable.insert(1, null); + ivConcreteTable.insert(1, null, null); IvConcrete concrete = SelectById.query(IvConcrete.class, 1).selectOne(context); assertNotNull(concrete); @@ -714,16 +716,8 @@ public class VerticalInheritanceIT extends ServerCase { @Test public void testDeleteFlattenedNullifyValues() throws SQLException { - TableHelper ivAbstractTable = new TableHelper(dbHelper, "IV_ABSTRACT"); - ivAbstractTable.setColumns("ID", "PARENT_ID", "TYPE") - .setColumnTypes(Types.INTEGER, Types.INTEGER, Types.CHAR); - - TableHelper ivConcreteTable = new TableHelper(dbHelper, "IV_CONCRETE"); - ivConcreteTable.setColumns("ID", "NAME") - .setColumnTypes(Types.INTEGER, Types.VARCHAR); - ivAbstractTable.insert(1, null, "S"); - ivConcreteTable.insert(1, "test"); + ivConcreteTable.insert(1, "test", null); IvConcrete concrete = SelectById.query(IvConcrete.class, 1).selectOne(context); assertNotNull(concrete);