《SpringBoot篇》11.JPA常用注解只需一个表

陈老老老板
说明:工作了,学习一些新的技术栈,边学习边总结,各位一起加油。需要注意的地方都标红了,还有资源的分享. 一起加油。

JPA常用注解一个表格让你全知道

(1.)说明: 只有开启了EntityListeners,才能生效@CreatedBy、@CreatedDate 、@LastModifiedBy 、@LastModifiedDate。

注解 作用 常用属性 实例
@Entity 指当前实体类,必不可少
@Table 当实体类与其映射的数据库表名不同名时需要使用 name:用于指明数据库的表名。
uniqueConstraints: 用来批量命名唯一键
@Table(name = “tab_user”)
@Table(name = “tab_user”,uniqueConstraints = {@UniqueConstraint(columnNames={“uid”,“email”})})
@Column 当实体的属性与其映射的数据库表的列不同名时 name:用于设置映射数据库表的列名。
unique:表示该字段是否为唯一标识,默认为false。
length:表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。
@Column(name = “ID” , unique = true, length = 20)
@Id 标注用于声明一个实体类的属性映射为数据库的主键列 @Id
@IdClass 实体类定义联合主键@IdClass注解的使用,出现多个@Id使用 @IdClass(Message.class)
@Id private Long userid
@Id private Long messageid
@GeneratedValue 为一个实体生成一个唯一标识的主键 strategy :指定主键生成策略
generator:选择主键别名
@GeneratedValue(strategy = GenerationType.IDENTITY,generator = “JDBC”)\
@EntityListeners 在实体类增删改的时候监听,为创建人/创建时间等基础字段赋值 value:指定监听类 @EntityListeners(user.class)
@CreatedBy 自动插入创建人
@CreatedDate 自动插入创建时间
@LastModifiedBy 自动修改更新人
@LastModifiedDate 自动修改更细时间
@Version 自动更新版本号
@JsonFormat 插入/修改/读取的时间转换成想要的格式 pattern:展示格式
timezone:国际时间
@JsonFormat(pattert = “yyyy-MM-dd HH:mm:ss”,timezone = “GMT +10”)
@SequenceGenerator 搭配@GeneratedValue使用。mysql不支持。指定数据库序列别名 sequenceName:数据库序列名
name:取的别名
@SequenceGenerator(name = “ID_S”,sequenceName = “SEQ_BDF2_USER”)
@Query 当使用自定义JPQL时使用
@Transactional 开启事务与@Modifying连用,在实现增删改时候使用
@Modifying 提示 JPA 该操作是修改操作

补充(@GeneratedValue的strategy属性):
IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;(SqlServer 对应 )

AUTO: JPA自动选择合适的策略,是默认选项;(MySQL 对应)

SEQUENCE:通过序列产生主键,通过 @SequenceGenerator 注解指定序列名,MySql 不支持这种方式

TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

总结:JPA常用注解一个表格都有。希望对您有帮助,感谢阅读

结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。

你可能感兴趣的:(SpringBoot篇,spring,boot,数据库,java)