J2EE编程心得-使用Hibernate出现的错误及解决方法 更新中...
2014-08-18 16:35
507 查看
1. 使用Hibernate时出现Session was already
closed异常
出现此异常的原因是Session已经被关闭如果不是使用的SessionFactory.getSession()来获得Session。
而是使用SessionFactory.getCurrentSession()方法来获得Session时,当事务结束的时候,不管是提交还是回滚事务,hibernate会自动关闭Session的,
所以不需要手动关闭。
public boolean insert(LiftInfo liftInfo) { Session session = HibernateUtil.currentSession(); Transaction tr = null; try { tr = session.beginTransaction(); session.save(liftInfo); tr.commit(); System.out.println("添加成功.."); } catch (HibernateException e) { // TODO Auto-generated catch block tr.rollback(); System.out.println("添加失败"); e.printStackTrace(); return false; } finally { HibernateUtil.closeSession();//此处如果写上session.close()会出现错误 } return true; }
2.在某云平台出现org.hibernate.exception.SQLGrammarException:
could not execute query 的解决办法
自己的hibernate语句在本地连接数据库能调通但是同样的程序放到某云平台上却报出了如上错误,经过分析发现,原来是大小写的问题,查询语句表名、字段的大小写必须和映射文件内的大小写一模一样比如,下面是hibernate某映射**.hbm.xml文件的表名liftinfo
<class name="com.yqc.sfdcloud.db.LiftInfo" table="liftinfo">
那么如果用下方SQL语句查询时,在某些云平台上就会报错
select * from LiftInfo
解决办法:将查询的表名或字段名与**.hbm.xml文件统一即可
相关文章推荐
- android studio编程时出现的错误:ListView重新载入后,更新数据或者再次进入该ListView加载数据,数据不显示 解决方法
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 使用Mac App Store更新、下载软件时出现未知错误的解决方法
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- (System)使用windows更新出现0x8DDD0018编号错误的解决方法
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
- 使用hibernate心得——字符串超长的解决办法(setCharacterStream出现顺序问题)
- "操作必须使用一个可更新的查询"错误的解决方法
- [原]用c#做了一个桌面程序用来分离excel文件里的数据时出现“操作必须使用一个可更新的查询”错误的解决
- Ruby中socket编程时出现recv for buffered IO (IOError) 错误的解决方法
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
- 出现 org.hibernate.NonUniqueObjectException 错误的解决方法
- 引用天下会"使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法"
- asp.net mvc使用的心得和问题的解决方法(陆续更新ing)
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
- 关于asp.net网站发布后,使用登录控件和注册控件时出现“数据库只读,无法进行数据更新”的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 使用ExternalInterface.call方法,出现js错误(解决方法)
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法