- 浏览: 241789 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (172)
- J2SE学习模块 (35)
- Oracle学习模块 (12)
- Jsp学习模块 (11)
- Servlet学习模块 (1)
- Tomcat 模块 (4)
- Struts1.x学习模块 (5)
- Spring学习模块 (2)
- Hibernate学习模块 (11)
- XML学习模块 (1)
- UML学习模块 (0)
- 算法学习模块 (6)
- 设计模式模块 (2)
- Mysql学习模块 (1)
- SQL_Server学习模块 (8)
- 项目开发模块 (10)
- 搜索引擎 (14)
- 开发工具的使用 (2)
- 面试题集 (7)
- 开发工具 (8)
- Linux (5)
- JavaFX模块 (1)
- 程序与人生 (4)
- 计算机网络 (6)
- EJB学习模块 (1)
- javascript常用模块 (2)
- 英语学习 (1)
- 程序变量命名的几条法则:匈牙利命名法 (1)
- 驼峰式大小写 (1)
- 帕斯卡命名法 (1)
- Jquery控制图片宽度及高度 (1)
- 喜讯--FireFox7.01已经支持CSS中 text-overflow ellipsis 属性 (1)
- 遍历 Map 的三种 常用方法 java (1)
- JDK自带工具Jstat (1)
- 提高 Oracle 查询 效率 建议 (1)
- 常用工具 (1)
最新评论
-
a465492689:
挺好,谢谢分享
存储过程 -
huangqinghe:
ding 顶~~~
Intellij Idea12 中文乱码问题总结 -
Redpick13:
楼主好人啊,有耐心
Java中的二维数组的定义与学习 -
dandongsoft:
神鼎飞丹砂
java.lang.NoClassDefFoundError: org/apache/lucene/index/memory/MemoryIndex -
devil__lord:
不错讲得很清楚 color=#cff
Java中的二维数组的定义与学习
更新多条记录出错:Hibernate.
试图在一个Action中调用多次Hibernate插入数据,
因为插入前一条数据后在后一条插入数据中需要用到前一条的记录.
代码如下:
试图在一个Action中调用多次Hibernate插入数据,
因为插入前一条数据后在后一条插入数据中需要用到前一条的记录.
代码如下:
public ActionForward regUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { UserActionForm uaf = (UserActionForm)form; //取出从页面提交过来的数据 String name = uaf.getName(); String password = uaf.getPassword(); String password1 = uaf.getPassword1(); String nichen = uaf.getNichen(); String email = uaf.getEmail(); String province = uaf.getProvince(); String sex = request.getParameter("sex"); MD5 md5 = new MD5(); //将页面提交过来的数据设置进User类中 User user = new User(); user.setName(name); user.setEmail(email); user.setPassword(md5.getMD5ofStr(password)); user.setNichen(nichen); user.setSex(sex); user.setProvince(province); user.setRegTime(new java.sql.Timestamp(System.currentTimeMillis())); //调用业务逻辑方法 int flag = 0; try { flag = userManager.add_User(user); }catch(Exception e){ e.printStackTrace(); return mapping.findForward("add_fail"); } /** * 默认的方法是开通博客同时是发表一篇开通博客的日志. */ Blog blog = new Blog(); blog.setName(name); blog.setVisited(1); blog.setGrade(1); blog.setOnline(true); blog.setUser(user); blog.setLastLoginTime(new java.sql.Timestamp(System.currentTimeMillis())); blog.setMingyuan("OpenSource社区博客中心欢迎你"); blog.setHead(null); /** * 发表一篇开通博客的日志... */ Daily daily = new Daily(); daily.setTitle("用户"+user.getName()+"开通博客--"+name); daily.setContent("<font size='4'><p>感谢用户:<font color='white' size='3'>"+user.getName()+"</font>在OpenSource开源社区中心开通博客</p>" + "<p>若有任何问题及意见,请发邮件到*****@163.com或者致电到:*****或者QQ交谈:******</p>" + "<p>如果发生问题,我们会尽快帮你解决你所提出的问题,你的意见及问题是我们开源社区前进的动力!</p>"+ "<p>谢谢你的合作!</p></font><p align='right'>开发团队PPP敬上!</p>"); daily.setVisited(0); daily.setPostTime(new java.sql.Timestamp(System.currentTimeMillis())); int flag2 = 0; try { flag2 = blogManager.add_Blog(blog); }catch(Exception e){ e.printStackTrace(); return mapping.findForward("add_fail"); } daily.setBlog(blog); try { dailyManager.add_Daily(daily); }catch(Exception e){ e.printStackTrace(); return mapping.findForward("add_fail"); } if(flag==1 && flag2==1){ return mapping.findForward("add_success"); }else { return mapping.findForward("add_fail"); } }
javax.servlet.ServletException: org.hibernate.AssertionFailure: null id in com.hpjianhua.xiehui.model.User entry (don't flush the Session after an exception occurs) org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) root cause org.hibernate.AssertionFailure: null id in com.hpjianhua.xiehui.model.User entry (don't flush the Session after an exception occurs) org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:55) org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:157) org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113) org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196) org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76) org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26) org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:558) org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:540) org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510) org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209) $Proxy24.add_User(Unknown Source) com.hpjianhua.xiehui.web.action.UserAction.regUser(UserAction.java:52) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270) org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187) com.hpjianhua.xiehui.web.action.BaseAction.execute(BaseAction.java:18) org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
评论
3 楼
hpjianhua
2010-04-30
看看兄弟写的Action代码是如何的呢?谢谢了
2 楼
rainlife
2010-04-30
>>因为插入前一条数据后在后一条插入数据中需要用到前一条的记录
先去了解一下hibernate的基础知识吧
-----------------------------------
Action的代码,简直惨不忍睹
先去了解一下hibernate的基础知识吧
-----------------------------------
Action的代码,简直惨不忍睹
1 楼
hpjianhua
2010-04-30
请问解决方法....谢谢了..
发表评论
-
Hibernate三种状态的转换
2010-09-22 10:23 587hibernate的状态 hibernate ... -
Hibernate实战Hibernate in action[英文版电子书][PDF]
2010-04-08 21:00 2140Hibernate实战Hibernate in action[ ... -
Hibernate回调与拦截机制
2009-06-14 02:04 853以下内容转载自:http://topmanopensourc ... -
Hibernate事务管理与乐观悲观锁定义
2009-06-14 01:53 1504Hibernate事务管理 数据 ... -
Hibernate脏数据与数据缓存
2009-06-14 01:44 1653Hibernate脏数据检查 何 ... -
Hibernate实体对象的生命周期
2009-06-13 11:19 543一.Hibernate实体对象的生命周期 实体对象的3种状态 ... -
Hibernate 自定义持久化实现
2009-06-13 10:17 854Hibernate 自定义持久化实现 在Hibernate ... -
Hibernate 数据加载方式
2009-06-13 09:58 979Hibernate数据加载方式 Hi ... -
HQL实用技术
2009-06-12 21:16 1293Fb HQL实用技术 实体查询 简单例子: String ... -
Hibernate学习笔记
2009-05-31 21:31 785第一个hibernate项目 1、新建java项目 2、创 ...
相关推荐
`Session.flush()`方法是一个关键的操作,它强制Hibernate将内存中的对象状态同步到数据库,确保数据的一致性。这篇博客深入探讨了`Session.flush()`的工作原理和应用场景。 `Session`在Hibernate中主要有以下职责...
在使用Hibernate进行数据库操作时,事务管理和`flush`方法的正确使用至关重要,因为它们直接影响到数据的一致性和安全性。在本文中,我们将深入探讨Hibernate的事务处理机制以及`flush`方法的用法,并分析为何在某些...
4. **关闭Session**:当Session被关闭时,Hibernate会自动执行Flush操作,以确保所有未提交的更改都被持久化到数据库中。 #### 错误示例分析 在给定的部分内容中,提到了一个典型的错误场景,其中包含了一个常见的...
1. `session.flush()`: 这个方法的主要作用是将Session缓存中的改动同步到数据库中。在默认情况下,Hibernate并不会立即更新数据库,而是等到事务提交或者Session关闭时才进行同步。`flush()`方法强迫Hibernate执行...
### 退出页面自动清除session技巧 在Web应用开发过程中,管理用户会话是十分重要的一个环节。Session机制作为实现用户状态跟踪的一种手段,在各种应用场景中都扮演着关键角色。但是,如何有效地管理并适时地清除...
当达到特定条件或手动调用`Session.flush()`时,Hibernate会将这些变更持久化到数据库。 Flush过程主要包括以下步骤: 1. **对象状态检查**:Hibernate会检查Session中的所有对象,判断它们是否需要被更新、插入...
在Java的持久化框架Hibernate中,`Session`和`Transaction`是两个至关重要的概念,它们在数据管理和事务处理中起到核心作用。这篇文章将深入解析这两个概念及其相关知识点。 `Session`是Hibernate提供的一种与...
Embedded: You can use RaptorDB inside your application as you would any other DLL, and you don't need to install services or run external programs. NoSQL: A grass roots movement to replace relational...
- **更新Session缓存**:`flush()`还会更新Session缓存,确保缓存中包含了最新的状态信息。例如,在第三个测试方法中,执行`flush()`后,person2被正式纳入Session缓存管理。 #### 三、evict()方法详解 `evict()`...
out.flush(); out.close(); out.write(parameters.getBytes(),0,parameters.getBytes().length); InputStream in = hc.getInputStream(); InputStreamReader reader = new InputStreamReader(in,"gb...
By leveraging the Address Windowing Extensions API, an application can create a fixed-size window into the additional physical memory. This allows a process to access any portion of the physical ...
This is the maximum size of an area which will be flushed. If the area is larger than this, then we flush the whole cache.
This specification is intended to be an open standard, and as such the text and information contained herein may be freely used, copied, or distributed without compensation or licensing restrictions. ...
本示例将深入探讨Hibernate Session的生命周期及其使用,帮助你更好地理解和运用这个强大的工具。 Hibernate Session是Hibernate的核心接口,它是与数据库交互的主要接口。Session对象负责管理实体对象的状态,包括...
这里,`store-type`设置为`redis`表明我们选择Redis作为Session存储,`namespace`是Redis中的键空间前缀,`flush-mode`定义了何时将Session保存到Redis,`connection-url`则是Redis服务器的地址。 接下来,我们需要...
在PostgreSQL数据库系统中,`module_pg_flushbuffer`是一个关键组件,主要负责数据缓冲区的刷新操作。在数据库系统中,缓冲区管理是性能优化的关键部分,因为它减少了磁盘I/O,提高了数据读写速度。当对数据库进行...
### Hibernate的核心接口——Session详解 #### 一、Session简述 **1. Session概念** - **定义**: Session 是 Hibernate 框架中最常用的接口之一,它又被称为持久化管理器。Session 负责所有与数据库交互的工作,...
MySQL Flush 命令用法详解 MySQL Flush 命令是 MySQL 中的一种非常重要的命令,它可以用于清除或重新加载各种高速缓存、表或者获取锁等。执行 Flush 命令必须要有 reload 权限。今天,我们将详细介绍 MySQL Flush ...
flush插件下载
Hibernate的Session_flush与隔离级别代码详解 Hibernate 是一个基于Java的 ORM(Object-Relational Mapping)工具,提供了将 Java 对象映射到关系数据库的能力。其中 Session_flush 和隔离级别是两个重要的概念。 ...