《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常用注解一个表格都有。希望对您有帮助,感谢阅读
结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)