您的位置:首页 > 其它

JPA常用注解

2015-07-28 23:24 399 查看
一. @Column 
        就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系。从定义可以看出,@Column注解一共有10个属性,这10个属性均为可选属性,各属性含义分别如下:

1. name:name属性定义了被标注字段在数据库表中所对应字段的名称;
2.unique:unique属性表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。

3.nullable:nullable属性表示该字段是否可以为null值,默认为true。

4.insertable:insertable属性表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。

5.updatable:updatable属性表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertable和updatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。

6.columnDefinition:columnDefinition属性表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。(也就是说,如果DB中表已经建好,该属性没有必要使用。)

7.table:table属性定义了包含当前字段的表名。

8.length:length属性表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。

9.precision和scale:precision属性和scale属性表示精度,当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数。

此标记可以标注在getter方法或属性前

二. @JoinColumn
@OneToOne 属性只能标注实体是一对一的关系,但是不能表示出数据库中关联的表的字段。所以要使用@JoinColumn注解。
例如:
类 A 于类 B 是一对一关系。
那么,在类A中,可以如下:

@OneToOne
@JoinColumn(name = "b_id")
private B b;

这样,表 B 中有 b_id 作为主键,那么就和该主键关联了起来。不然不知道和哪个字段关联起来。 

三. @OneToMany
同上,@OneToMany 也可以配合@JoinColumn 来配合使用。和上述一样的道理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息