How do I implement one-many relationship in ORMLite Android?
please find the example
public class A {
private String name;
@DatabaseField (foreign = true, foreignAutoRefresh = true, columnName = "A")
private B b;
@DatabaseField(columnName = "author")
private String authorName;
}
public class B {
@DatabaseField(generatedId = true, columnName = "id")
private long id;
@DatabaseField(columnName = "name")
private String name;
@ForeignCollectionField
Collection<A> aees;
}
B has collection of A. I am calling dao.create(b);
Now i create dao of b, since b has all the data. But the table B has only created with data, A is never created. Kindly could some one help?
Now i create dao of b, since b has all the data. But the table B has only created with data, A is never created. Kindly could some one help?
Right. You need to create the A
items using:
for (A a : b.aees) {
aDao.create(a);
}
ORMLite does not automatically create those for you.
You might take a look a the source code of the foreign-collection example program.
You have to override the DAO of the B class, so when an object B is created or updated, the objects in the collection to be also updated.
Take a look at this question: Collections in ORMLite.
i was facing the same problem. My json was like:
{
"parent":{
"name":"ABC",
"children":[
{"childName":"1"},
{"childName":"2"},
{"childName":"3"}
]
}
}
i resolved the issue like this:
Parent parent = new Parent();
parent.setName("ABC");
while(get children one by one from json data)
{
childrenArray.add(new Child(its Name));
}
parentDAO.create(parent);
for(Child child : childrenArray)
{
child.setParent(parent);
childDAO.create(child);
}
来源:https://stackoverflow.com/questions/17441694/one-to-many-relationship-in-ormlite-android