@Entity
将一个 POJO 类注解成一个实体 bean ( 持久化 POJO 类 )
@Table
为实体 bean 映射指定具体的表,如果该注解没有被声明,系统将使用默认值 ( 即实体 bean 不带包名的短类名 )
@Id
将实体bean中的某个属性定义为标识符 ( identifier )
@GeneratedValue
该注解可以定义该标识符的生成策略 ( 默认是AUTO策略 ) :
AUTO— 可以是IDENTITY,或SEQUENCE或TABLE类型,这取决于不同的底层数据库。
TABLE— 使用表保存id值
IDENTITY— 自然递增
SEQUENCE— 序列
@Transient
被注解成 @Transient 的 getter 方法或属性,将不会被持久化,hibernate 会忽略这些字段和属性。
@Basic
所有没有定义注解的属性,等价于在其上面添加了 @Basic 注解.。通过 @Basic注解可以声明属性的获取策略 ( fetch strategy )
@Temporal
在核心的 Java API 中并没有定义时间精度 ( temporal precision )。因此处理时间类型数据时,你还需要定义将其存储在数据库中所预期的精度。
在数据库中,表示时间类型的数据有 DATE,TIME,和 TIMESTAMP 三种精度 ( 即单纯的日期,时间,或者两者兼备 )。 可使用 @Temporal 注解来调整精度。
@Column
将实体 bean 中的属性映射到表中的列。
@Column(
name= "columnName";(1)
booleanunique()defaultfalse;(2)
booleannullable()defaulttrue;(3)
booleaninsertable()defaulttrue;(4)
booleanupdatable()defaulttrue;(5)
StringcolumnDefinition()default"";(6)
Stringtable()default "";(7)
intlength()default 255;(8)
intprecision()default 0; (9)
intscale()default 0; (10)
(1)name可选,列名(默认值是属性名)
(2)unique可选,是否在该列上设置唯一约束(默认值false)
(3)nullable可选,是否设置该列的值可以为空(默认值true)
(4)insertable可选,该列是否作为生成的insert语句中的一个列(默认值true)
(5)updatable可选,该列是否作为生成的update语句中的一个列(默认值true)
(6)columnDefinition可选,为这个特定列覆盖SQL DDL片段 (这可能导致无法在不同数据库间移植)
(7)table可选,定义对应的表(默认为主表)
(8)length可选,列长度(默认值255)
(9)precision可选,列十进制精度(decimal precision)(默认值0)
(10)scale可选,如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)
例:
注 : 注解可以是在属性或 getter 方法上进行声明,但不建议混合使用这两种声明方式,相反,应该尽量避免。另外,由 static 修饰的属性不会被持久化到数据库。
package net.yeah.fancydeepin.po; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; import java.io.Serializable; @Entity @Table(name = "user") public class User implements Serializable { private static final long serialVersionUID = 1L; /** * ID,主键 */ private Integer id; /** * 用户名 */ private String name; /** * 昵称 */ private String nickName; /** * 邮箱地址 */ private String email; /** * 注册日期时间 */ private Date registerDate; /** * 最近登录时间 */ private Date recentLoginTime;
/** * 上一次登录时间 */ private Date lastLoginDay; @Id @GeneratedValue public Integer getId() { return id; } @Column(length = 18, nullable = false) public String getName() { return name; } @Transient public String getNickName() { return nickName; } @Column(name = "mail", length = 40, nullable = false) public String getEmail() { return email; } @Temporal(TemporalType.TIMESTAMP) @Column(nullable = false) public Date getRegisterDate() { return registerDate; } @Temporal(TemporalType.TIME) public Date getRecentLoginTime() { return recentLoginTime; } @Temporal(TemporalType.DATE) public Date getLastLoginDay() { return lastLoginDay; } public void setId(Integer id) { this.id = id; } public void setName(String name) { this.name = name; } public void setNickName(String nickName) { this.nickName = nickName; } public void setEmail(String email) { this.email = email; } public void setRegisterDate(Date registerDate) { this.registerDate = registerDate; } public void setRecentLoginTime(Date recentLoginTime) { this.recentLoginTime = recentLoginTime; } public void setLastLoginDay(Date lastLoginDay) { this.lastLoginDay = lastLoginDay; } }
相关推荐
基于java的贝儿米幼儿教育管理系统答辩PPT.pptx
本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac
基于java的消防物资存储系统答辩PPT.pptx
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
TA_lib库(whl轮子),直接pip install安装即可,下载即用,非常方便,各个python版本对应的都有。 使用方法: 1、下载下来解压; 2、确保有python环境,命令行进入终端,cd到whl存放的目录,直接输入pip install TA_lib-xxxx.whl就可以安装,等待安装成功,即可使用! 优点:无需C++环境编译,下载即用,方便
使用软件自带的basic脚本编辑制作的脚本 低版本软件无法输出Excel报告,可以通过脚本方式实现这一功能
基于java的就业信息管理系统答辩PPT.pptx
25法理学背诵逻辑.apk.1g
基于java的大学生校园兼职系统答辩PPT.pptx
做到代码,和分析的源数据
本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
适用于ensp已经入门人群的学习,有一定难度
基于java的数码论坛系统设计与实现答辩PPT.pptx
tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl
基于java的医院信管系统答辩PPT.pptx
项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse
tornado-4.2.tar.gz
链表 合并两个链表,链表基础操作