@Test public void RawSqlParentLoad() { List<Data> exampleData = new ArrayList<>(); exampleData.add(new Data(0)); exampleData.add(new Data(1)); exampleData.add(new Data(2)); ChildA a = new ChildA(0); a.setData(exampleData); Ebean.save(a); ChildB b = new ChildB(1); b.setData(exampleData); Ebean.save(b); ChildA c = new ChildA(2); c.setData(exampleData); Ebean.save(c); RawSql rawSql = RawSqlBuilder.parse("select type, id, number from parent where number > 1").create(); List<Parent> partial = Ebean.find(Parent.class).setRawSql(rawSql).findList(); assertNotNull(partial.get(0).getData()); assertEquals(partial.get(0).getData().get(0).getNumber().intValue(), 0); }
public boolean equals(Object obj) { ChildA a = (ChildA) obj; if (!getChildStuff().getClass().equals(a.getChildStuff().getClass())) { return false; } if (!getParentStuff().getClass().equals(a.getParentStuff().getClass())) { return false; } return getChildStuff().equals(a.getChildStuff()) && getParentStuff().equals(a.getParentStuff()); }
public void testHiddenFieldsWithDifferentType() { xstream.alias("child-a", ChildA.class); xstream.alias("parent-a", ParentA.class); ChildA childA = new ChildA(); childA.getChildStuff().put("hello", "world"); childA.getParentStuff().add("woo"); String expected = "" + "<child-a>\n" + " <stuff defined-in=\"parent-a\">\n" + " <string>woo</string>\n" + " </stuff>\n" + " <stuff>\n" + " <entry>\n" + " <string>hello</string>\n" + " <string>world</string>\n" + " </entry>\n" + " </stuff>\n" + "</child-a>"; assertBothWays(childA, expected); }
@Test public void RawSqlParentFetch() { List<Data> exampleData = new ArrayList<>(); exampleData.add(new Data(0)); exampleData.add(new Data(1)); exampleData.add(new Data(2)); ChildA a = new ChildA(0); a.setData(exampleData); Ebean.save(a); ChildB b = new ChildB(1); b.setData(exampleData); Ebean.save(b); ChildA c = new ChildA(2); c.setData(exampleData); Ebean.save(c); RawSql rawSql = RawSqlBuilder.unparsed("select type, id from parent where number > 1") .columnMappingIgnore("type") .columnMapping("id", "parent.id") .create(); List<ParentAggregate> aggregates = Ebean.find(ParentAggregate.class) .setRawSql(rawSql) .fetch("parent", new FetchConfig().query()) .findList(); List<Parent> partial = new ArrayList<>(); for (ParentAggregate aggregate : aggregates) { partial.add(aggregate.parent); } assertNotNull(partial.get(0).getData()); assertEquals(partial.get(0).getData().get(0).getNumber().intValue(), 0); }