2011-03-07 3 views
1

두 개의 객체가 있는데 "사용자"와 "스킬"이라고 부릅니다. 사람 이 내 사이트에 가입하면 "사용자"로 저장됩니다. 사용자가 여러 스킬을 보유 할 수 있습니다.이 스킬은 사용자 개체 내에 목록으로 저장됩니다 (예 : ).기존 엔티티 그룹에 객체 추가하기 (Java App Engine)

@Persistent @Element(dependent = "true") 
private List<Skill> skills; 

지금 내가 무엇을 결정해야하는 것은 내가 그것을 만들 때 나는 하나의 트랜잭션 내에서 오브젝트를 모두 수정해야로서, 사용자 엔티티 그룹에 스킬 개체를 추가하는 방법입니다. 스킬 개체를 만들 때 새 스킬 개체에 사용자 키를 제공해야합니까? 감사합니다. 감사의 말을 전합니다.

답변

0

동일한 트랜잭션에서 두 개의 개체를 만드는 경우를 제외하고는 특별한 작업을 수행 할 필요가 없습니다. 새로운 스킬을 만들 때의 경우 http://code.google.com/intl/fr/appengine/docs/java/datastore/jdo/relationships.html#Relationships_Entity_Groups_and_Transactions

+0

문제는 사용자 및 스킬 개체를 동시에 만들 수 없다는 것입니다. 사용자 개체는 가입 할 때 만들어지며 나중에 스킬 개체가 생성되어 "기술"목록에 추가됩니다. – user605333

+0

그건 문제가되지 않습니다. 목록에 새 스킬을 추가하기 만하면 자동으로 지속됩니다. –

+0

목록에 스킬을 추가하기 만하면 동일한 트랜잭션 내에서 사용자 및 스킬 개체를 수정하고 유지하는 데있어이 오류가 발생하기 때문에 문제가됩니다. 에있는 여러 엔티티 그룹에서 작동 할 수 없기 때문에 문제가됩니다. 단일 거래. – user605333

0

(JDO를위한) 형 사용자의 멤버를 포함해야 당신의 기술은 수 있도록하는 owned relationship

@Persistent 
private User owner; 

말을 읽고 사용자가 너무

@Persistent(mappedBy="owner") 
private List<Skill> skills; 

을 포함 생성자에서 소유하는 사용자에게 스킬 (someUser)을 전달하고 소유자 구성원에게 할당합니다. 이 엔티티를 유지하면 매핑이 완료되고 사용자의 스킬 목록에 액세스하면 모든 스킬이 생성됩니다. "소유자"는이 사용자입니다.

JDO는보다 관계형 DB 지향이므로 JDO 관계 구현에는 앱 엔진에 몇 가지 문제가 있습니다. 참조 링크 및 일반 'google에서 자세한 정보를 찾을 수 있습니다.

관련 문제