2012-03-29 11 views
2

Ist der folgende Code legal:JPA Anmerkungen

@Entity 
@Embeddable 

public class UserProfile { 

@Id 
private String name; 
private String pass; 
.. 

}

Kann ich beide Anmerkungen auf einmal benutzen?

Antwort

2

nein, hier se http://www.objectdb.com//api/java/jpa wie es

andere Sache zu tun, wird die ID automatisch generierte, aber ja können Sie ändern, wie Sie wollen;)

+0

Eine ID muss nicht automatisch generiert werden. Es ist eine Benutzereinstellung. – DataNucleus

+0

"aber ja können Sie ändern, wie Sie wollen" = "Es ist eine Benutzereinstellung" – F3rr31r4

4

Warum muss immer es Leute, die, wenn angewiesen, nicht auf einen Knopf zu drücken, wird es tun, nur um zu sehen, was passiert? Einbettbar ist ein Typ, genau wie Entität, und sollte nicht zusammen verwendet werden, da eine Einbettung per Definition keine ID enthalten kann.

+0

yiep .. vergaß das;) – F3rr31r4

0

Nein. Einbettbare Elemente sind für die Einbettung in Entitäten vorgesehen. Sie werden verwendet, um das Zusammensetzungsmuster zu implementieren.

0

Ok, wir verwirren die Dinge hier.

Eine Entität ist eine Java-Klasse, für deren Instanzen Persistenz in der Datenbank in Form einer Tabelle pro Entität, einer Zeile pro Instanz, gewünscht wird.

Andere Instanzen anderer Klassen können entweder Entitäten mit eigenen Tabellen sein und mit den Eins-zu-Viele-, Viele-zu-Viele- und solchen Annotationen verknüpft sein, oder sie können direkt in derselben Tabelle einer anderen Entität "eingebettet" sein. Dies ist besonders nützlich, wenn Sie über komplexe Schlüssel verfügen und separate Klassen zum Definieren der Primärschlüssel benötigen.

Sie haben also entweder eine embeddable-Klasse, deren Instanzen in einer anderen Entität beibehalten werden, oder Sie haben eine Entität, die in einer eigenen Tabelle beibehalten wird.

Verwandte Themen