@DatabaseTable(tableName="Foo")public class Foo { @DatabaseField(generatedId = true) protected int id; @ForeignCollectionField(eager=true) private Collection<Parent> parentList;}
public abstract class Parent { @DatabaseField(generatedId = true) protected int id; @DatabaseField protected String description; @DatabaseField(foreign = true) protected Foo foo;}
@DatabaseTable(tableName="ChildA")public class ChildA extends Parent { @DatabaseField private String somethingA;}
@DatabaseTable(tableName="ChildB")public class ChildB extends Parent { @DatabaseField private int somethingB;}
fooDao.createOrUpdate(foo);
for (Parent parent : foo.getParentList()) {
parent.setFoo(foo); if (parent instanceof ChildA){ childA_DAO.createOrUpdate((ChildA) parent); } else if (parent instanceof ChildB){ childB_DAO.createOrUpdate((ChildB) parent); }}
fooDao.queryForAll();
(1) no such table: parentjava.sql.SQLException: Problems executing Android query: SELECT * FROM `parent` WHERE `foo_id` = ?
public abstract class Parent { @DatabaseField(generatedId = true) protected int id;
...
@DatabaseTable(tableName="parent")public class ChildA extends Parent {...
@DatabaseTable(tableName="parent")public class ChildB extends Parent {...
java.sql.SQLException: Could not create object for class ar.com.sample.Parent