Spring-data-jpa同时保存entity的问题

在一次开发中,一个很小的问题,spring-data-jpa在一个事务中同时保存entity对象中出现了,unSupport类型,造成保存不成功,看了几篇blog下,发现大家遇到的问题千奇百怪,没有什么解决方案,看了一下stackoverflow,若有所思,避免以后遇到这些问题省略一下探究,若有喜欢自己解决问题的,可以忽略。


目的:可以同时保存entity
前提:一个事务中根据刚生成的entity对象获取对象的id做一些更新
实现:先保存entity对象,然后拿到对象的id做一些操作,然后在写@Query用原生的方式做操作
@Modifying
@Query(value = "update users set ip_phone = :ipPhone where id = :id", nativeQuery = true)
void updateIpPhoneByUserId(@Param("ipPhone")String ipPhone, @Param("id")Long id);


 





做事情的时候,先考虑一下hibernate的几种状态,临时态,持久态,游离态之间的转换

错误1: 使用jpa自带的SaveAndFlush先保存刷新,这样就可以用其状态保存了,不可行;
错误2: 使用拆分,先保存entity,然后通过另一个方法,findOne查询出来,在做操作,不可行;

 最后就使用了@Modify @Query的方式,sql原生的方式做了一下更新,可能还有其他更好的方式,在此记录一下,或许以后有更好的方式再更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值