因为我使用的是hibernate的注解配置,错误出在使用ManyToOne并进行级联查询的时候,我的注解配置是这样的
@ManyToOne(fetch = FetchType.LAZY,cascade=CascadeType.ALL)
原因是因为FetchType.LAZY相当于配置文件中的lazy设置为true,
解决办法就是改为
@ManyToOne(fetch = FetchType.EAGER,cascade=CascadeType.ALL)
在使用配置文件的时候也是会出现这个错误的,具体修改方式雷同,即把lazy设置为false
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(防止爬虫):http://blog.liuyingguang.cn
OpenBI问答社区:http://openbi.liuyingguang.cn/
做了不少项目,遇到不少hibernate配置,对于hibernate.connection.autocommit值的设置,存在很多争议,一些人认为应该设置为true,一些人认为应该设置为false,而我坚决选择后者,下面就来讲讲我的理由吧
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(防止爬虫):http://blog.liuyingguang.cn
OpenBI问答社区:http://openbi.liuyingguang.cn/
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist
今天 用JPA保存数据的时候出现此错误。
原因: ID生成策略 我设置的自动。但是代码里面还是手动给对象ID设置了值
解决方案: 去掉手动给ID设置值的代码即可。
如:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
这种情况下,会报错,因为对id仅仅是设置了主键,并没有设置自增长,将
@GeneratedValue(strategy = GenerationType.IDENTITY)
去掉即可
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn