今天更新一篇文章时发生如下的错误提示
detached entity passed to persist
org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: springMVC.NLoveB.po.Term_taxonomy; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: springMVC.NLoveB.po.Term_taxonomy at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:187) at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:343) at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:308) at org.springframework.orm.hibernate4.HibernateTemplate.update(HibernateTemplate.java:644) at org.springframework.orm.hibernate4.HibernateTemplate.update(HibernateTemplate.java:639) at springMVC.NLoveB.dao.impl.DaotermsImpl.updaterelationships(DaotermsImpl.java:177) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601)
出现这个问题,首先我们第一想到的就是更新这个实体的时候,id出现了问题
我这里是采用的hibernate框架来更新的一篇文章
hibernate是ORM框架,通常会按照我们事先定义好的规则去更新一个id
请看如下代码片段
public class Term_relationships { private Posts objectid; //文章id private Term_taxonomy taxonomyid; //分类方法id manytoone Term_taxonomy private int order; //排序 //省略其他 }
我这里的objectid和taxonomyid均是id
我更新这个表时,只对taxonomyid进行了赋值,对objectid没有赋值,而objectid是由另一个表决定,因此这里是空
所以如果单单只更新这个表就会出现问题
我这里出现的错误提示
detached entity passed to persist
就是因为这个原因。
将两个id赋值就好
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情