Persistance Java / JPA: @Colonne vs @Basic
Quelle est la différence entre @Column
et @Basic
annotations JPA? Peuvent-ils être utilisés? Devrait ils être utilisés? Ou ne l'un d'eux suffit-il?
Vous devez vous connecter pour publier un commentaire.
@Basic
signifie qu'un attribut est d'être persisté et un mapping standard est utilisé. Il a des paramètres qui vous permettent de spécifier si l'attribut est paresseusement chargé, et si c'est nullable.@Column
vous permet de spécifier le nom de la colonne dans la base de données à laquelle l'attribut est d'être conservé.Si vous spécifiez l'un sans l'autre, puis vous obtenez le comportement par défaut de ce qui est raisonnable, si souvent les gens utilisent une seule, à l'exception de cas particuliers.
Donc, si nous voulions un chargement différé d'un attribut et de spécifier un nom de colonne, nous pouvons dire
Si nous recherchés par défaut, non-lazy comportement puis vient le
@Column
aurait été suffisante.@Basic
sans@Column
, c'est pourquoi laoptional
etnullable
propriétés existent dans les deux. Suis-je le droit?En plus de @djna réponse, il est intéressant de noter que
@Basic
doit être comparé avec@OneToMany
,@ManyToOne
et@ManyToMany
. Une seule peut être spécifié sur toute la propriété.@Column
et@JoinColumn
peut être spécifié avec l'un de ces pour décrire la base de données de propriétés de la colonne.Ces deux ensembles d'annotations qui peuvent être utilisés ensemble, mais seulement une annotation de chaque groupe peut être utilisé à la fois.
Il est intéressant de noter que de Base est conçu pour des primitifs champs
http://en.wikibooks.org/wiki/Java_Persistence/Basic_Attributes