最近工作中持久化对象时总是报错detached entity passed to persist,查了数据库中id生成策略和数据库是自动递增的,首先排除是id策略引起的,然后检查程序也没有setId,排除了id相关的问题,另外set get方法使用的lombok框架的@Getter @Setter注解,排除get set的问题,让同事看了一下,发现字段属性有基本数据类型,改为对象类型了还是不行,最后比对了调用类似方法的实体,发现好像少了构造方法,加上@NoArgsConstructor和@AllArgsConstructor注解再次执行程序就好了,我遇到的这个问题就是因为没有构造方法导致的,其中上面的注解必须使用lombok.jar才行的,否则还是使用get set 方法。
上述问题的解决方法的思路是
1.检查id策略,是否要使用setId,数据库中自动生成的就不用
2.检查实体是否都有get set方法
3.检查实体是否含有构造方法
java学习交流:513650703