欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实体类与数据库字段类型

程序员文章站 2022-06-22 23:53:26
...

实体类

/*实体类*/
@Column(precision = 12, scale = 3)
private BigDecimal rate;
//数据库字段类型
rate  decimal(12,3)2@Column属性详解:

name
定义了被标注字段在数据库表中所对应字段的名称;

unique
表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。

nullable
表示该字段是否可以为null值,默认为true。

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

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

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

table
表示当映射多个表时,指定表的表中的字段。默认值为主表的表名。

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

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

实例

示例(其中34不常用)

Example 1:    指定字段“tradeNo”交易编号的长度为50,且值不能为null

@Column(name = "tradeNo", length = 50, nullable = false)
private String tradeNo;


Example 2:    
指定字段“totalAmount”交易金额的精度(长度)为10,小数点位数为2位,且值不能为null

@Column(name = "totalAmount", precision = 10, scale = 2, nullable = false)
private BigDecimal totalAmount;


Example 3: 
字段“text”,指定建表时SQL语句 如“varchar(50) NOT NULL”

@Column(name = "text", columnDefinition = "varchar(50) not null")
private String text;


等同于SQL

CREATE TABLE [dbo].[my_test] (
    [id] int NOT NULL IDENTITY(1,1) ,
    [text] varchar(50) NOT NULL 
)

columnDefinition,若不指定该属性,通常使用默认的类型建表,若此时需要自定义建表的类型时,可在该属性中设置。

Example 4:    
字段值为只读的,不允许插入和修改。通常用于主键和外键

@Column(name = "id", insertable = false, updatable = false)
private Integer id;
相关标签: 随记