Spring Data JPA中常用的注解详解
文章目录Spring Data JPA 常用注解详解实体映射篇一、前言二、基础注解必掌握1. Entity2. Table3. Id4. GeneratedValue5. Column6. Basic7. Transient三、时间/枚举类型映射8. Temporal9. Enumerated四、嵌入式对象高级10. Embeddable Embedded五、集合映射高级11. ElementCollection六、完整实体示例七、总结速记版本次优化亮点Spring Data JPA 常用注解详解实体映射篇一、前言Spring Data JPA 是基于 Hibernate 封装的 ORM 框架通过注解实现实体类与数据库表的自动映射大幅减少 SQL 编写提升开发效率。本文整理 JPA 最核心、最常用的注解从基础映射到高级特性带示例 解释新手也能直接上手。二、基础注解必掌握1. Entity作用标记当前类为实体类交给 JPA 管理。EntitypublicclassUser{}2. Table作用指定实体映射的数据库表名不写默认类名。EntityTable(namesys_user)publicclassUser{}3. Id作用标记字段为主键。IdprivateLongid;4. GeneratedValue作用设置主键生成策略。IdGeneratedValue(strategyGenerationType.IDENTITY)// 自增privateLongid;常用策略IDENTITYMySQL 自增AUTOJPA 自动选择SEQUENCEOracle 序列5. Column作用配置字段映射规则字段名、长度、非空、唯一等。Column(nameuser_name,nullablefalse,length20,uniquetrue)privateStringusername;常用属性name字段名nullable是否允许为空length长度unique是否唯一columnDefinition字段类型定义6. Basic作用默认映射注解不写也生效表示普通属性映射。BasicprivateStringpassword;7. Transient作用标记非数据库字段JPA 忽略映射。TransientprivateStringtempData;// 不存入数据库三、时间/枚举类型映射8. Temporal作用映射Java 时间类型到数据库。Temporal(TemporalType.DATE)// 日期年月日privateDatecreateDate;Temporal(TemporalType.TIMESTAMP)// 时间戳年月日时分秒privateDateupdateTime;三种类型DATE年月日TIME时分秒TIMESTAMP完整时间戳9. Enumerated作用映射枚举类型。Enumerated(EnumType.STRING)// 以字符串存入数据库privateSexsex;两种策略STRING存枚举名称推荐ORDINAL存下标不推荐四、嵌入式对象高级10. Embeddable Embedded作用嵌入式组件将多个字段抽成公共类不生成独立表。1嵌入式类EmbeddablepublicclassAddress{privateStringprovince;privateStringcity;}2实体中使用EntitypublicclassAuthor{IdGeneratedValue(strategyGenerationType.IDENTITY)privateLongid;Embedded// 嵌入地址privateAddressaddress;}特点共用一张表生命周期一致适合公共字段抽取五、集合映射高级11. ElementCollection作用映射简单集合/List/Set自动生成关联子表。ElementCollectionprivateListStringhobbyList;适用场景一个人有多个手机号一个人有多个地址不需要独立实体的集合六、完整实体示例EntityTable(namet_author)publicclassAuthor{IdGeneratedValue(strategyGenerationType.IDENTITY)privateLongid;Column(nullablefalse,length20)privateStringname;Enumerated(EnumType.STRING)privateSexsex;Temporal(TemporalType.DATE)privateDatebirthDate;EmbeddedprivateAddressaddress;ElementCollectionprivateListStringbooks;TransientprivateStringtemp;}七、总结速记版Entity实体类Table表名Id主键GeneratedValue主键策略Column字段配置Transient忽略字段Temporal时间类型Enumerated枚举Embeddable/Embedded嵌入式对象ElementCollection集合映射本次优化亮点结构清晰前言 → 基础 → 时间/枚举 → 嵌入式 → 集合 → 示例 → 总结代码可直接复制运行语言通俗、专业、不啰嗦补充原文缺失的完整示例排版舒适适合 CSDN 收录企业级规范写法
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2491805.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!