Hos*_*Aly 114 java persistence jpa
JPA @Column和@Basic注释之间有什么区别?它们可以一起使用吗?如果他们可以一起使用吗?或者其中一个是否足够?
djn*_*jna 143
@Basic表示要保留属性并使用标准映射.它有一些参数,允许您指定是否要延迟加载属性以及它是否可以为空.
@Column 允许您指定要将属性保留到的数据库中的列的名称.
如果您指定一个没有另一个,那么您将获得合理的默认行为,因此通常人们只使用一个,但特殊情况除外.
因此,如果我们想要延迟加载属性并指定列名,我们可以说
@Basic(fetch=FetchType.LAZY)
@Column(name="WIBBLE")
Run Code Online (Sandbox Code Playgroud)
如果我们需要默认的,非惰性行为,那么就@Column足够了.
Hos*_*Aly 48
除了@ djna的答案之外,值得注意的是@Basic应该与之比较@OneToMany,@ManyToOne和@ManyToMany.在任何属性中只能指定其中一个.
@Column并且@JoinColumn可以与其中任何一个一起指定来描述数据库列属性.
这些是可以一起使用的两组注释,但每次只能使用一组注释.
Gab*_*ica 21
值得注意的是,Basic是为原始字段设计的
http://en.wikibooks.org/wiki/Java_Persistence/Basic_Attributes
基本属性是属性类是简单类型(如String,Number,Date或基元)的属性.基本属性的值可以直接映射到数据库中的列值.
支持的类型和转换取决于JPA实现和数据库平台.使用不直接映射到数据库类型的类型的任何基本属性都可以序列化为二进制数据库类型.
在JPA中映射基本属性的最简单方法是什么都不做.任何没有其他注释且不引用其他实体的属性都将自动映射为基本属性,如果不是基本类型,甚至可以序列化.该属性的列名将默认为大写,名称与属性名称相同.
| 归档时间: |
|
| 查看次数: |
71133 次 |
| 最近记录: |