use of org.apache.cayenne.testdo.inheritance_vertical.IvImpl in project cayenne by apache.
the class VerticalInheritanceMultipleAttributesIT method testPartialCreateObjectsWithUpdate.
@Test
public void testPartialCreateObjectsWithUpdate() throws SQLException {
ivOtherTable.insert(1, "other1");
ivOtherTable.insert(2, "other2");
IvOther other1 = ObjectSelect.query(IvOther.class).where(IvOther.NAME.eq("other1")).selectOne(context);
IvOther other2 = ObjectSelect.query(IvOther.class).where(IvOther.NAME.eq("other2")).selectOne(context);
IvImpl impl1 = context.newObject(IvImpl.class);
impl1.setName("name");
impl1.setAttr1("attr1");
IvImpl impl2 = context.newObject(IvImpl.class);
impl2.setName("name");
impl2.setAttr1("attr1");
context.commitChanges();
ObjectContext cleanContext = runtime.newContext();
List<IvImpl> implResult = ObjectSelect.query(IvImpl.class).select(cleanContext);
assertEquals(2, implResult.size());
for (IvImpl record : implResult) {
assertEquals("name", record.getName());
assertEquals("attr1", record.getAttr1());
assertNull(record.getAttr2());
assertNull(record.getOther1());
assertNull(record.getOther2());
}
impl1.setAttr1("attr1");
impl1.setAttr2("attr2");
impl1.setOther1(other1);
impl1.setOther2(other2);
impl2.setAttr1("attr1");
impl2.setAttr2("attr2");
impl2.setOther1(other1);
impl2.setOther2(other2);
context.commitChanges();
cleanContext = runtime.newContext();
implResult = ObjectSelect.query(IvImpl.class).select(cleanContext);
assertEquals(2, implResult.size());
for (IvImpl record : implResult) {
assertEquals("name", record.getName());
assertEquals("attr1", record.getAttr1());
assertEquals("attr2", record.getAttr2());
assertEquals(other1.getObjectId(), record.getOther1().getObjectId());
assertEquals(other2.getObjectId(), record.getOther2().getObjectId());
}
}
Aggregations