`
toshi2002
  • 浏览: 33623 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于hibernate最经典的exception

阅读更多

在一次简单的页面UPDATE之前 我想先查询一遍这个对象

结果出现了javax.servlet.ServletException: a different object with the same identifier value was already associated with the session异常

这个主要是因为在一个页面之中已经有一个持久化对象了,但我又去查了一遍,因此在提交一次修改update请求的时候就会使session中存在着一个相同id的两个不同对象,这样处于了摸棱两可的局面

因此我的解决方法是在update之前的select用一个别的Session

public String updateTfsj() {
  try {
   String[] only = onlyStr.split(",");
   if (onlyStr != null && !onlyStr.equals("")) {
    for (Object o : only) {
     if (o.toString() != null) {
      // System.out.println(o.toString());
      deleteFilesTfsjk(Integer.parseInt(o.toString()));
     }
     ;
    }
   }

   Calendar c = Calendar.getInstance();
   Set fjSet = new HashSet();
   appYuanmoban = (AppYuanmoban) tfsjService.load(AppYuanmoban.class, yaid);
   tfsjk.setYaid(appYuanmoban);

   if (zjId != null) {
    AppPgb appPgb = (AppPgb) tfsjService.load(AppPgb.class, zjId);
    tfsjk.setZjjb(appPgb);
   }
   String[] test = getRs(tfsjk.getId().toString());
   tfsjk.setSjzt(test[0]);
   tfsjk.setXfOrgid(test[1]);
   
   boolean bl1 = tfsjService.updateObject(tfsjk);

 return SUCCESS;
  } catch (Exception ex) {
   return INPUT;
  }
 }

 

 

//创建新session来select

public String[] getRs(String tfsjid) {
  String[] rs = new String[2];
  Session session = HibernateSessionFactory.getSession();
  Tfsjk tf = ((Tfsjk) session.createQuery("from Tfsjk t where t.id=" + tfsjid).iterate().next());
  rs[0] = tf.getSjzt();
  rs[1] = tf.getXfOrgid();
  HibernateSessionFactory.closeSession();
  return rs;
 }

 

分享到:
评论

相关推荐

    Could not roll back Hibernate transaction.doc

    nested exception is org.hibernate.TransactionException: JDBC rollback failed 这表明Hibernate事务回滚操作失败,导致事务不能正确回滚。 二、问题原因 该问题的主要原因是手动对数据库做了些操作,导致...

    达梦Hibernate方言2.0至4.0

    这里我们关注的是“达梦Hibernate方言2.0至4.0”,这是一个专为达梦数据库系统(DM)设计的Hibernate方言支持,涵盖了Hibernate框架的多个版本。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员...

    Hibernate示例

    } catch (Exception e) { session.getTransaction().rollback(); e.printStackTrace(); } finally { session.close(); sessionFactory.close(); } } } ``` 这段代码展示了如何创建一个新的用户并将其保存到...

    hibernate_day02笔记

    【hibernate_day02笔记】的文档主要涵盖了学习Hibernate框架的基础内容,包括ORM思想、Hibernate入门案例、配置文件解析、核心API的使用等。以下是详细的讲解: **ORM思想**: ORM(Object-Relational Mapping)即...

    HIbernate4.3.6-c3p0所需jar.rar

    org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.connections.spi.ConnectionProvider] at org.hibernate.service.internal....

    spring和hibernate集成Demo

    这篇关于"Spring和Hibernate集成Demo"的内容将深入探讨这两者如何协同工作,以及如何构建一个集成的小型项目。 **Spring框架** Spring的核心是依赖注入(Dependency Injection,DI),它允许开发者通过配置文件或...

    Hibernate错误及解决办法集合

    ### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...

    HibernateDAO的写法

    } catch (Exception e) { if (transaction != null) { transaction.rollback(); } e.printStackTrace(); } finally { session.close(); } } public User findById(int id) { Session session = ...

    hibernate数据库通用SQL代码

    public ArrayList select(String sql) throws Exception { Session session = HibernateSessionFactory.currentSession(); Connection con = session.connection(); PreparedStatement pstmt = con.prepare...

    hibernate实现分页查询

    ### Hibernate 实现分页查询详解 #### 一、引言 在进行数据库操作时,为了提高用户体验和系统性能,分页查询是一项非常重要的技术。...以上就是关于Hibernate实现分页查询的具体介绍,希望对大家有所帮助。

    hibernate4.1.2

    9. **元数据API**:新的元数据API提供了一种更强大、更灵活的方式来获取关于实体和映射的信息,有助于在运行时动态调整或检查配置。 10. **增强的Exception处理**:错误处理更加精确,提供了更多类型的异常,帮助...

    详解Hibernate事务处理机制

    - **JDBC事务管理**:这是最基本的事务管理方式,适用于单个应用程序上下文中。它通过设置连接的自动提交属性为`false`来开启事务,并在提交或回滚时恢复到默认状态。 ```java Session session = sf.openSession...

    Hibernate与struts2结合使用的demo

    public String intercept(ActionInvocation invocation) throws Exception { Session session = null; try { session = sessionFactory.openSession(); // 调用Action return invocation.invoke(); } finally...

    spring与hibernate的整合

    Spring 和 Hibernate 的整合是企业级 Java 应用开发中的常见实践,它将 Spring 框架的控制反转(IoC)和面向切面编程(AOP)优势与 Hibernate 的持久化能力相结合,提供了更高效、灵活的数据库操作。下面我们将深入...

    HIbernate+Maven入门demo

    } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { session.close(); } } ``` ### 8. 测试 在`src/test/java`目录下创建JUnit测试类,编写测试用例来验证...

    hibernate环境搭建基本操作封装

    } catch (Exception e) { transaction.rollback(); throw e; } finally { session.close(); } ``` 三、实战示例 在`hibernateTest010`这个文件中,可能包含了创建一个简单的Java项目,包括上述步骤的实现,...

    java利用hibernate连接数据库

    Java通过Hibernate连接数据库是Java开发中的常见操作,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将详细讲解如何利用Hibernate在Java项目中建立数据库连接,以及提供一个...

    手动搭建Hibernate框架工程

    } catch (Exception e) { throw new ExceptionInInitializerError(e); } } public static Session getSession() { return sessionFactory.openSession(); } public static void closeSession(Session ...

    hibernate简单案例

    1. **环境配置**:首先,确保你的项目中已经引入了Hibernate的相关库,包括`hibernate-core`、`hibernate-entitymanager`以及JDBC驱动(这里是MySQL的`mysql-connector-java`)。在`pom.xml`(如果你使用的是Maven...

Global site tag (gtag.js) - Google Analytics