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 来配合使用。和上述一样的道理。
就像@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 来配合使用。和上述一样的道理。
相关文章推荐
- extjs 如何给column 加上提示
- ERROR 1406 : Data too long for column 解决办法
- Flex DataGrid带列统计功能
- ORACLE 11G新特性之一(增加带default的字段)
- Ext多表头
- xUtils 关联对象查询
- hibernate JPA @OneToOne双向关联共享主键
- Excel Sheet Column Title (easy)
- JPA/hibernate @joincolumns 联合主键关联
- Column \'表名.某列名\' is invalid in the select list because it is not contained in either an aggregate f
- CSS3之栏目column
- c# web Column chart(包含美观的样式)
- SQL 列内容合并
- @JoinColumn
- Bidirectional OneToOne Relationships
- SQL*PLUS的命令行——column命令
- sqlserver 字段修改
- Hibernate One to One
- 如何修改Oracle数据表的栏位顺序
- Linux column命令详解