detached entity passed to persist异常解决
病理特征:Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.xxx.Xxx
简单地说,发生此异常即是一个游离的对象要被持久化(save)时,其ID既要ORM框架为它生成ID值,而此实体的ID却已然有值。对于新手容易出现此异常,但一些有经验的程序员有时也会碰到此问题,笔者就有一次,故与网友们“分享这次遭遇”。
让ORM为即将要持久的实体生成ID值(ORM的主键策略),是典型的做法,例如有自增长(即便是DBMS来做)、UUID,Hibernate框架则更多。因此,不能手工为此实体赋上ID值。笔者设计主要实体时,通常用UUID作主键,很显然它是字符型的。但是,有时会发现form表单为其赋一个长度为0的字符串,看html代码:
<input name="id" type="text" id="id" value=""/>
注意 value=""
如果是增加,则不需要在form表单中安置这么个控件,笔者通常将增加和修改实体在一个form表单中完成,笔者很喜欢用Spring MVC。这时id字段被Spring MVC包装到实体中就有值了(其值是长度为0的空字符串)。ORM保存时上面的异常就来了。解决的办法很多,笔者是为其实体做一个属性编辑器,在编辑器判断ID是否为空且长度是否为0,若是,则置入一个null。在保存前检查一下ID也是一种解决办法。
有时在一对一、一对多保存时,关联方也会存在这种情况,所以关键检查ID字段就可以了。
detached entity passed to persist异常解决相关推荐
- jpa遇到的 org.hibernate.PersistentObjectException: detached entity passed to persist异常
jpa遇到的 org.hibernate.PersistentObjectException: detached entity passed to persist异常 参考文章: (1)jpa遇到的 ...
- detached entity passed to persist:***
detached entity passed to persist 翻译:翻译传递到持久化的分离实体. 错误提示: detached entity passed to persist: com.lzh ...
- org.hibernate.PersistentObjectException: detached entity passed to persist: cn.edu.xupt.bean.Users
persist持久化时,因为设置user表主键使用注解自动生成,所以当创建对象,id值不为0或是null就会报错.之前创建user对象时,没改对象的id值.
- org.hibernate.PersistentObjectException: detached entity passed to persist
简单地来看,将一个游离的对象要被持久化(save)时报错. 我们知道要持久化对象时候,通常Hibernate会根据ID生成策略自动生成ID值,但是这个对象ID已经有值,所有抛错.这个错误会出现在配置 ...
- detached entity passed to persist问题与解决方案
JPA save对象的时候有时候会遇到如题的错误,可能有两种原因: 1.该对象定义的是自动生成id的方式,insert的时候写入的id在数据库中已存在. 网上搜到的比较多的都是这种情况,但个人认为,实 ...
- deleted entity passed to persist: [dcms.ebridge.market.entity.Reward#null]
今天项目中的错误: deleted entity passed to persist: [dcms.ebridge.market.entity.Reward#<null>] 删除RetaR ...
- detachd entity passed to persist:数据库表名
办法1:创建新对象 办法2:加事务
- JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
测试又报bug啦 接到测试小伙伴的问题,说是一个接口不返回数据了,好吧,虽然不是我写的接口任务落到头上也得解决,本地调试了一下,好家伙,直接抛了个异常出来,这又是哪位大哥喝醉了写的代码... Exce ...
- orcal 数据库 maven架构 ssh框架 的全xml环境模版 及常见异常解决
创建maven项目后,毫不犹豫,超简单傻瓜式搞定dependencies(pom.xml 就是maven的依赖管理),这样你就有了所有你要的包 <project xmlns="http ...
最新文章
- epoll监听文件_怎么理解把标准输入以ET模式加入epoll,监听EPOLLOUT事件时,epoll_wait多次返回?...
- bzoj3786星系探索 splay
- 转 graphviz工具及其原理
- 跟我一起写 Makefile(整理版)
- [转载]Memcache内存临界测试
- 算法-排序-基数排序(对任意整数排序)
- Python中的条件语句(if,if ... else,if ... elif ... else和嵌套的if)
- 基于redis实现分布式锁思考
- 构建和实现单点登录解决方案
- vue2.0项目的环境配置以及有哪些的坑
- java 打印出库单_使用Jasperreporter生成入库出库单打印等报表操作
- 数字臧品系统开发运行逻辑数字臧品系统开发源码搭建流程
- 签了之后才后悔了--转载--职场心法
- 内存卡数据被格式化如何恢复?
- module ‘statsmodels.stats.diagnostic‘ has no attribute ‘het_breushpagan‘
- i了i了,这简直就是2020全网最全最强的MyBatis面试题!
- 《社会调查数据管理——基于Stata 14管理CGSS数据》一1.5 本书简介和使用说明...
- 2021年中国奶酪行业发展现状及进出口状况分析:奶酪进口规模庞大,国产奶酪仍需发力 [图]
- 微信小游戏实战--cocos creator实现wordle游戏(五)
- 关于内存条价暴涨方面,很有味道的段子文
热门文章
- 2014山东省春季高考计算机本科学校,2017年山东春季高考五大本科学校排名
- dojo 图形显示_使用Dojo创建动态图形和图表
- npm cnpm npx nvm 区别
- Spring Boot制作个人博客-后端管理(登录)
- ege管理系统_医院挂号管理系统-智能新型医院挂号管理系统下载v95.44官方PC版-CE安全网...
- 一个技校生的IT生涯 --- 我和软件的姻缘【0】
- pythonpymysql
- Xpath---following-sibling节点
- .NetCore3.1接入Consul的服务端和客户端代码整理
- 批量构造四阶类自然数奇偶简单幻立方的一种方法