2009-07-30 13 views
1

ich eine unowned Beziehung in meinem Domain-Modell habenGAE unowned JPA Beziehung

@Entity 
public class A { 
@Id 
private String id; 
private Key firstB; 
private Key secondB; 

// getters & setters 
} 

@Entity 
public class B { 
@Id 
private Key id; 
private String name; 
// getter & setter 
} 

KeyFactory.createKey(B.class.getSimpleName(), name) ist die Art, wie ich die Schlüssel für die Klasse B erzeugen

I B speichern unabhängig von A und weisen Sie auf eine Instanz von einer Zeit. Das Problem ist, dass nach dem Speichern A beide Felder firstB und firstA null sind.

Irgendeine Idee von dem, was ich falsch mache?

+0

Als Referenz bezieht sich die Frage dazu: http://code.google.com/appengine/docs/java/datastore/relationships.html#Unowned_Relationships –

Antwort

1

Key Objekte werden standardmäßig nicht beibehalten. Sie benötigen daher eine explizite Anmerkung, weshalb Sie null Werte sehen.

Try firstB und secondB als @Enumerated Anmerkungen versehen (dies wirklich @Basic sein sollte, aber there is a bug which prevents this from working):

@Entity 
public class A { 
    @Id 
    private String id; 

    @Enumerated 
    private Key firstB; 

    @Enumerated 
    private Key secondB; 
} 

Update: Die neueste SDK und Datanucleus JAR-Dateien jetzt korrekt die Verwendung von @Basic ermöglichen.

+0

Dies war nicht in der offiziellen Dokumentation, also danke für den Hinweis! – dlinsin

+0

Wie es mit dem neuesten SDK und den neuesten Datanucleus-Gläsern herauskommt, funktioniert auch @Basic. – dlinsin

+0

Danke für das Update, ich werde es zur Antwort hinzufügen. –

Verwandte Themen