Search in sources :

Example 6 with IvImpl

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());
    }
}
Also used : IvOther(org.apache.cayenne.testdo.inheritance_vertical.IvOther) ObjectContext(org.apache.cayenne.ObjectContext) IvImpl(org.apache.cayenne.testdo.inheritance_vertical.IvImpl) Test(org.junit.Test)

Aggregations

IvImpl (org.apache.cayenne.testdo.inheritance_vertical.IvImpl)6 Test (org.junit.Test)6 ObjectContext (org.apache.cayenne.ObjectContext)5 IvOther (org.apache.cayenne.testdo.inheritance_vertical.IvOther)4