2014-06-09 1 views
0

Ormite를 사용하여 도움을 요청하고 싶습니다. 나는 필드외국인 필드 값 없음 Ormite

와 필드 -

@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)와 클래스 (Node.class)가

@DatabaseField(generatedId=true) 
int id; 
@DatabaseField 
String name; 
@DatabaseField 
String value; 

@DatabaseField(foreign=true,index=true) 
Node node; 

내 문제는, 내가 속성을 추가, 필드 노드 그 항상 0이고 결과는 생성 된 노드의 ID 여야합니다.

귀하의 도움을 바랍니다. k3v1n4ud3의 댓글이 정답에 당신을 가리키는 @

덕분에

+1

노드 개체를 먼저 삽입 한 다음 다시 클래스 룸 개체로 설정 한 다음 클래스 룸 개체를 유지 하시겠습니까? – k3v1n4ud3

답변

0

나는 생각한다.

당신에게 Nodeid 필드가 자동으로 생성하고 node 객체에 설정 될 수 있도록 Node 테이블에 node를 삽입 할 첫 번째 필요. 그런 다음 Classroom 필드의 node 필드에 할당하면 Classroom을 데이터베이스에 삽입하면 node_id 필드는 0이 아닙니다.

는 ORMLite에 docs on "foreign objects"을 인용 :

당신이 이물질로 필드를 만드는, 이물질이 자동으로 생성되지 않습니다. 이물질이 데이터베이스에 의해 제공되는 생성 된 ID를 가지고 있다면 그것을 참조하는 객체를 생성하기 전에 생성해야합니다.