当前位置: 首页 > 知识库问答 >
问题:

org.hibernate.HiberNate异常:非法尝试将集合与Hibernate4中的两个开放会话相关联

路奇
2023-03-14

我在Hibernate4中使用JTA事务管理器。有人知道这个问题吗?在执行刷新时,我面临错误。

下面是我面临上述问题的一段代码。

public void saveOrUpdateEvent(Event event)
{
 event = DomainReferenceMapper.map(event);
    Session session = getSessionFactory().getCurrentSession();
    session.saveOrUpdate(event);
    session.flush();

XML:

 <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
            <prop key="hibernate.show_sql">false</prop>
            <!-- prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop-->

             <!-- Package was changed in the updgration of hibernate -->

            <prop key="hibernate.query.factory_class">org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory</prop>
            <prop key="hibernate.cache.provider_class">org.hibernate.cache.TreeCacheProvider</prop>
            <!-- prop key="hibernate.cache.use_query_cache">true</prop -->
             <!--
             Added for hibernate upgradation
             -->
        <prop key="hibernate.cache.use_second_level_cache">false</prop>

        <!--<prop key="hibernate.enable_lazy_load_no_trans">true</prop> 
            --><prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
             <prop key="hibernate.transaction.jta.platform">org.hibernate.service.jta.platform.internal.WeblogicJtaPlatform</prop>
        </props>
    </property>

共有1个答案

百里涛
2023-03-14
public void saveOrUpdateEvent(Event event)
{
    event = DomainReferenceMapper.map(event);
    Session session = null ; 
    Transaction tran = null;
    try {
        session = getSessionFactory().getCurrentSession();        
        tran =  session.beginTransaction();
        session.saveOrUpdate(event);
        session.flush();
        tran.commit();
    } catch(Exception ex ) {
        ex.printstacktrance(); 
    }
 类似资料:
  • 在我当前的 spring 项目中,当我的应用程序尝试执行此方法时: 我得到了这个错误: 我的Dao类(插入方法的位置)是这样的: 我还尝试在Dao类中的insert、update和delete方法以及在服务类中使用它们的方法中添加注释@Transaction,但同样的问题也会发生。 有人能看出我做错了什么吗? ps.:我试图保存的实体类是:

  • 我试图更新MySql数据库中的记录。更新时引发了以下异常 我检查会话。它关闭在每个方法的最后块中。无法弄清楚出了什么问题。我能够毫无问题地使用其他方法插入更新操作,但只有保存更新用户豆方法抛出异常 UserDAOImpl: 服务输入: applicationContext.xml: 我能够使用相同的配置执行所有数据库操作,但当我从serviceImpl调用块用户()方法时,它调用DAO方法,并且S

  • 我使用Hibernate和Spring,我在执行以下代码时得到这个异常: 我已经阅读了一些关于Hibernate的会话管理,我有一种预感,这段代码的会话处理很差。举行两次公开会议的原因可能是什么?Hibernate API表示函数返回一个新的会话对象或现有的会话对象。在这种情况下,它从哪里获取现有会话对象?如果它创建了一个新的会话对象,那么处理所涉及的集合仍然可以吗? 任何帮助将不胜感激。提前感谢

  • 我在我的单元测试中看到了上面的错误,并且不知道如何纠正它。 我的单元测试类扩展了abstracttransactiondatasourcespringcontexttests并执行以下操作: 下面是我的规则组映射文件的一个片段。如您所见,RuleGroup封装了规则和属性集合,默认情况下这两者都是延迟加载的: 我的DAO类扩展了HibernateDaoSupport: 通过调试我的测试,在find

  • 那么,除了避免使用jackson-hibernate-mapper进行测试之外,还有什么方法可以避免这个问题吗?使用DTO和Dozer代替domain object不被认为是一种解决方案(将来会这样做,但不是现在)。 提前致谢

  • 我是PHP的新用户。我在一些PHP上工作project.want一些关于PHP会话的帮助。我有login.html页面的形式动作执行login.js.登录时执行,用户名和密码已请求urllogin.php页面检查用户名 我在登录时启动了session_start()。php。我已与print\r(美元会话)进行了核对;对于会话,未在上启动。但这是一个开始。当我搬家的时候。这是行不通的。我在家里查。