当前位置: 首页 > news >正文

《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常用注解一个表格都有。希望对您有帮助,感谢阅读

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

相关文章:

  • 不想手敲代码?Jupyter Notebook 又一利器 Visual Python
  • 【mysql体系结构】InnoDB索引页结构
  • Roson的Qt之旅 #123 QNetworkConfigurationManager网络配置管理
  • 【数据结构与算法】ArrayList的模拟实现
  • Spring5源码之IOC的Bean管理之xml
  • DHCP 服务
  • [架构之路-20]:目标系统 - 硬件平台 - 嵌入式系统硬件电路基础:架构、设计流程、总线、外设、基本电路、编码
  • 关系代数 运算
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • python使用cv2库实现图像的读取处理显示和保存
  • 二道题:分组顺序向下填充 和 标注数据整理
  • 节日网页HTML代码 学生网页课程设计期末作业下载 清明节大学生网页设计制作成品下载 DW节日网页作业代码下载
  • 生命在于折腾——某国外cms代码审计
  • 『从零开始学小程序』媒体组件audio组件
  • [HJ73 计算日期到天数转换]
  • .pyc 想到的一些问题
  • @jsonView过滤属性
  • Apache的80端口被占用以及访问时报错403
  • Fabric架构演变之路
  • Laravel5.4 Queues队列学习
  • python3 使用 asyncio 代替线程
  • React 快速上手 - 07 前端路由 react-router
  • 服务器之间,相同帐号,实现免密钥登录
  • 前端技术周刊 2019-01-14:客户端存储
  • 区块链共识机制优缺点对比都是什么
  • 山寨一个 Promise
  • 微信开源mars源码分析1—上层samples分析
  • 译有关态射的一切
  • 因为阿里,他们成了“杭漂”
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • C# - 为值类型重定义相等性
  • Spring Batch JSON 支持
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​MySQL主从复制一致性检测
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (27)4.8 习题课
  • (c语言)strcpy函数用法
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (笔试题)分解质因式
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)http协议
  • (转)大型网站的系统架构
  • ****Linux下Mysql的安装和配置
  • .naturalWidth 和naturalHeight属性,
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net8 Blazor 尝鲜
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @Autowired 与@Resource的区别