JPA OneToMany, immer leer

8

Ich habe eine bidirektionale, eine zu viele und viele zu eins Beziehung. sagen, eine Firma hat viele Personen, und eine Person hat eine Firma, also in der Firma

%Vor%

und persönlich,

%Vor%

Jetzt sagen wir, dass ich eine @ PrePersist / @ PreUpdate-Methode für die Firma habe. Wenn sie aktualisiert wird, möchte ich den gleichen Zeitstempel für alle Personen festlegen ... wie,

%Vor%

Wenn ich dies debugge, sehe ich, dass das Personenfeld in Firma immer leer ist. wenn ich den Typ der Personen Sammlung ansehe, ist es ein java.util.Vector. nicht sicher, ob das relevant ist. Ich habe erwartet, dass ein JPA-Sammlungstyp automatisch geladen wird.

Was mache ich falsch?

    
Jeffrey Blattman 26.02.2011, 00:28
quelle

3 Antworten

2

Sie müssen beide Seiten Ihrer Beziehung festlegen. Wenn Sie eine neue Person erstellen und ihr Unternehmen festlegen, müssen Sie die Person auch den Personen des Unternehmens (Mitarbeitern?) Hinzufügen.

Außerdem sollten Sie kein anderes Objekt in prePersist / Update eines Objekts ändern. Sie sollten ein eigenes prePersist / Update-Ereignis verwenden.

Siehe, Ссылка

    
James 16.10.2012 13:47
quelle
0

Fügen Sie fetch = FetchType.Eager zu @ManyToOne Annotation hinzu. Du hast es auf der anderen Seite der Beziehung hinzugefügt.

    
anergy 28.02.2011 12:52
quelle
0

Wenn Sie personList in Company erhalten möchten, verwenden Sie FetchType.EAGER . In JPA,

%Vor%     
CycDemo 27.09.2012 15:13
quelle

Tags und Links