Was ist der Unterschied zwischen @Column
und @Basic
Anmerkungen in JPA? Können sie zusammen verwendet werden? Sollten sie zusammen verwendet werden? Oder reicht einer von ihnen aus?
quelle
Was ist der Unterschied zwischen @Column
und @Basic
Anmerkungen in JPA? Können sie zusammen verwendet werden? Sollten sie zusammen verwendet werden? Oder reicht einer von ihnen aus?
@Basic
bedeutet, dass ein Attribut beibehalten und eine Standardzuordnung verwendet werden soll. Es verfügt über Parameter, mit denen Sie angeben können, ob das Attribut träge geladen werden soll und ob es nullwertfähig ist.
@Column
Mit dieser Option können Sie den Namen der Spalte in der Datenbank angeben, für die das Attribut beibehalten werden soll.
Wenn Sie eines ohne das andere angeben, erhalten Sie ein vernünftiges Standardverhalten. Daher verwenden die Benutzer mit Ausnahme von Sonderfällen häufig nur eines.
Wenn wir also ein Attribut verzögert laden und einen Spaltennamen angeben möchten, können wir sagen
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
Wenn wir das standardmäßige, nicht faule Verhalten benötigen @Column
würden, wäre nur das ausreichend gewesen.
@Basic
ohne verwenden kann@Column
, weshalb die Eigenschaftenoptional
undnullable
in beiden existieren. Habe ich recht?Zusätzlich zu der Antwort von @ djna ist anzumerken, dass
@Basic
mit und verglichen werden@OneToMany
sollte . Für eine Eigenschaft kann nur eine davon angegeben werden.@ManyToOne
@ManyToMany
@Column
und@JoinColumn
kann zusammen mit diesen angegeben werden, um die Eigenschaften der Datenbankspalte zu beschreiben.Dies sind zwei Sätze von Anmerkungen, die zusammen verwendet werden können, es kann jedoch jeweils nur eine Anmerkung von jedem Satz verwendet werden.
quelle
Es ist erwähnenswert, dass Basic für primitive Felder ausgelegt ist
http://en.wikibooks.org/wiki/Java_Persistence/Basic_Attributes
quelle
Die Annotation @Basic wird auf JPA-Entitäten angewendet, und die Annotation @Column wird auf die Datenbankspalten angewendet. Das optionale Attribut der Annotation @Basic definiert, ob das Entitätsfeld null sein kann oder nicht. andererseits,
quelle