![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Data Jpa
文章平均质量分 86
Jpa 相关操作
miskss
这个作者很懒,什么都没留下…
展开
-
JPA实体主键使用自增长的策略下,使id在Null的情况使用数据库自增长的值,不为Null的情况下使用设置的值
内网入库的发现,JPA主键是自增长的策略,即使id不为空,但是保存的数据后还是会使用数据库的自增长的id,未使用id值,导致两边的数据不一致。期望:使用自定义主键生成策略,继承原有主键自增长策略实现类,重新实现使用方法3. 源码解析由于JPA默认的实现是Hibernate,方法最终会调用hibernate的来完成入库。项目启动时会扫描所有的标记的实体,转换成,该persister包含实体类的源数据信息以及对应的插入,修改、删除的sql语句模板信息通过实体类的persister 获取主键生成器,通过原创 2022-06-20 17:29:51 · 2749 阅读 · 1 评论 -
JPA实现领域驱动设计(DDD) 中值对象的持久化
文章目录什么是DDD值对象?实现方式单一值对象改变表中映射的字段的名称根据值对象的单一属性查询或多属性的动态查询多个值对象根据值对象的单一属性查询或多属性的动态查询什么是DDD值对象?什么领域驱动设计(DDD) 值对象??实现方式利用JPA 中的@Embeddable和@Embedded两个注解来实现值对象的持久化单一值对象单一对象可以利用嵌入的方式将值对象的属性映射到实体类,将值对象的属性 映射成表的字段 。录入学生信息时,需要一个家庭住址的信息,则这个地址信息则可以设计成一个值对象Add原创 2020-11-12 18:38:42 · 1860 阅读 · 0 评论 -
Jpa 自动更新表中的创建日期和修改时间
一般来说创建时间和修改时间 两个字段是一个实体类必备的。在阿里Java开发手册中也对此的说明:【强制】表必备三字段:id, create_time, update_time。说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time, update_time的类型均为 datetime 类型,前者现在时表示主动式创建,后者过去分词表示被动式更新。mysql 添加时间自动添加更新时间自动更新在JPA 中也是支持新的数据保存是自动写入创建原创 2020-10-13 11:36:14 · 5005 阅读 · 1 评论 -
Springboot JPA 枚举Enum类型存入到数据库
1、使用JPA 的@Enumerated 注解 ,可以直接将Enum映射到数据库中。但是value的值只有两种方式选择,一种是使用枚举的序号映射,一种是枚举的名称来映射。public enum EnumType { /** Persist enumerated type property or field as an integer. */ ORDINAL, /** P...原创 2019-05-16 18:06:56 · 13258 阅读 · 5 评论 -
Springboot Jpa自定义查询的结果集
如果要自定义查询的结果集有3种方法:使用List<Object[]>来接收结果,只支持原生sql查询。使用自定义对象来接收结果,支持JPA,JPQL查询。使用自定义的接口来映射结果,支持JPA,JPQL,原生sql查询。官网文档链接 https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#pro...原创 2019-01-24 17:46:36 · 7913 阅读 · 13 评论 -
使用@Convert注解将List等不是基本数据类型的变量存入的数据库中
@Convert 可将不是基本数据类型的数据按照一定的格式转换成可存入数据库的基本类型,类似于自动拆装箱操作。 1、新建Converter类 2、实现javax.persistence.AttributeConverter包下的AttributeConverter接口 3、重写convertToDatabaseColumn()和convertToEntityAttribute() 4、在...原创 2018-09-13 00:15:30 · 4711 阅读 · 2 评论