在一次简单的页面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;
}
分享到:
相关推荐
nested exception is org.hibernate.TransactionException: JDBC rollback failed 这表明Hibernate事务回滚操作失败,导致事务不能正确回滚。 二、问题原因 该问题的主要原因是手动对数据库做了些操作,导致...
这里我们关注的是“达梦Hibernate方言2.0至4.0”,这是一个专为达梦数据库系统(DM)设计的Hibernate方言支持,涵盖了Hibernate框架的多个版本。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员...
} catch (Exception e) { session.getTransaction().rollback(); e.printStackTrace(); } finally { session.close(); sessionFactory.close(); } } } ``` 这段代码展示了如何创建一个新的用户并将其保存到...
【hibernate_day02笔记】的文档主要涵盖了学习Hibernate框架的基础内容,包括ORM思想、Hibernate入门案例、配置文件解析、核心API的使用等。以下是详细的讲解: **ORM思想**: ORM(Object-Relational Mapping)即...
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框架** Spring的核心是依赖注入(Dependency Injection,DI),它允许开发者通过配置文件或...
### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...
} catch (Exception e) { if (transaction != null) { transaction.rollback(); } e.printStackTrace(); } finally { session.close(); } } public User findById(int id) { Session session = ...
public ArrayList select(String sql) throws Exception { Session session = HibernateSessionFactory.currentSession(); Connection con = session.connection(); PreparedStatement pstmt = con.prepare...
### Hibernate 实现分页查询详解 #### 一、引言 在进行数据库操作时,为了提高用户体验和系统性能,分页查询是一项非常重要的技术。...以上就是关于Hibernate实现分页查询的具体介绍,希望对大家有所帮助。
9. **元数据API**:新的元数据API提供了一种更强大、更灵活的方式来获取关于实体和映射的信息,有助于在运行时动态调整或检查配置。 10. **增强的Exception处理**:错误处理更加精确,提供了更多类型的异常,帮助...
- **JDBC事务管理**:这是最基本的事务管理方式,适用于单个应用程序上下文中。它通过设置连接的自动提交属性为`false`来开启事务,并在提交或回滚时恢复到默认状态。 ```java Session session = sf.openSession...
public String intercept(ActionInvocation invocation) throws Exception { Session session = null; try { session = sessionFactory.openSession(); // 调用Action return invocation.invoke(); } finally...
Spring 和 Hibernate 的整合是企业级 Java 应用开发中的常见实践,它将 Spring 框架的控制反转(IoC)和面向切面编程(AOP)优势与 Hibernate 的持久化能力相结合,提供了更高效、灵活的数据库操作。下面我们将深入...
} catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { session.close(); } } ``` ### 8. 测试 在`src/test/java`目录下创建JUnit测试类,编写测试用例来验证...
} catch (Exception e) { transaction.rollback(); throw e; } finally { session.close(); } ``` 三、实战示例 在`hibernateTest010`这个文件中,可能包含了创建一个简单的Java项目,包括上述步骤的实现,...
Java通过Hibernate连接数据库是Java开发中的常见操作,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将详细讲解如何利用Hibernate在Java项目中建立数据库连接,以及提供一个...
} catch (Exception e) { throw new ExceptionInInitializerError(e); } } public static Session getSession() { return sessionFactory.openSession(); } public static void closeSession(Session ...
1. **环境配置**:首先,确保你的项目中已经引入了Hibernate的相关库,包括`hibernate-core`、`hibernate-entitymanager`以及JDBC驱动(这里是MySQL的`mysql-connector-java`)。在`pom.xml`(如果你使用的是Maven...