实体类与数据库字段类型
程序员文章站
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表示小数点所占的位数。
实例
示例(其中3、4不常用)
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;
推荐阅读
-
PHP能将下拉列表的值赋给数据库中date类型的字段吗解决方案
-
mysql_query数据查询与列出数据库字段名方法
-
数据库字段复用的基本原理与示例
-
解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
-
解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
-
用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
-
用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
-
将数据库某种类型的字段更新为另一种类型
-
MySQL数据库中CAST与CONVERT函数实现类型转换的讲解
-
JavaScript转换数据库DateTime字段类型方法