我想请求使用Ormlite的帮助。我有一个类(Node.class)与字段 -
@DatabaseField(generatedId = true)
public int id;
@DatabaseField
String path;
@DatabaseField
String label;
@DatabaseField
Date lastModified;
@DatabaseField
String resourceType = NODE_TYPE_ENTRY;
@DatabaseField
int status = NODE_STATUS_FRESH;
@DatabaseField
boolean leaf = false;
@DatabaseField
UUID uuid;
@ForeignCollectionField(eager = false)
public ForeignCollection<Node> children;
@ForeignCollectionField(eager = true)
public ForeignCollection<Property> properties;
@DatabaseField(foreign = true,index=true)
Node parent;
和另一个带有字段
的类(Classroom.class)@DatabaseField(generatedId=true)
int id;
@DatabaseField
String name;
@DatabaseField
String value;
@DatabaseField(foreign=true,index=true)
Node node;
我的问题是,当我添加一个属性时,字段节点总是0,结果应该是创建节点的id。
希望得到你的帮助。
由于
答案 0 :(得分:0)
我认为@ k3v1n4ud3的评论指的是正确答案。
首先需要将node
插入Node
表格,以便id
中的Node
字段可以自动生成并设置在node
上对象。然后,您可以将其分配到node
中的Classroom
字段,这样当您将Classroom
插入数据库时,node_id
字段将为非0。
引用ORMLite中的docs on "foreign objects":
使用异物创建字段时,请注意不会自动为您创建异物。如果您的外来对象具有由数据库提供的generated-id,那么您需要在创建引用它的任何对象之前创建它。