首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate:无法更新objectName

Hibernate:无法更新objectName
EN

Stack Overflow用户
提问于 2020-03-12 11:25:18
回答 1查看 31关注 0票数 1

你能列举出我不能在Hibernate项目中保存/更新这个实体的原因吗:

错误如下:

代码语言:javascript
复制
SEVERE: Could not synchronize database state with session
org.hibernate.exception.DataException: could not update: [org.game.model.heroChampion#123456]
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:77)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2360)
    at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2242)
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2542)
    at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)

代码语言:javascript
复制
org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.DataException: could not update: [org.game.model.heroChampion#123456]
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:634)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:695)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:566)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:540)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

此对象是数据库中多对一关系的一部分。只要列举可能的原因,我就会检查我的代码。

我试过的东西。

代码语言:javascript
复制
  public void saveHeroChampion(final HeroChampion hero) {


        getHibernateTemplate().clear();

        getHibernateTemplate().refresh(hero);
        getHibernateTemplate().saveOrUpdate(sputumSmear); 
        getHibernateTemplate().flush();
    }
EN

回答 1

Stack Overflow用户

发布于 2020-03-12 12:23:39

当您调用clear时,它会从会话缓存中删除hero的实例,因此该对象将被分离并且不再持久。尝试删除这一行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60647193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档