移除xerces.jar(附部分Java异常汇总)

3.1的选中project capabilitie中的hibernate.在右边窗口中找到后移除。
3.2版本的在project capabilitie中的jpa。在右边窗口中找到后移除。
window---preferences---myeclipse-project capabilitie--hibernate或者jpa
1:caught exception while loading file struts-default.xml
解决方法:
移除项目目录lib中的xerces.jar

2:org.hibernate.MappingException: Unknown entity: java.lang.String
解决方法:
String hqlDelete = "delete NativeTester";
int deletedEntities = session.createQuery(hqlDelete).executeUpdate();

3:用Hibernate开发遇到"No CurrentSessionContext configured"错误
在使用SessionFactory的getCurrentSession方法时遇到如下错误,经过检查,原因如下:

是因为在hibernate.cfg.xml文件中忘记进行了如下设置:hibernate.current_session_context_class
如果是在web容器中运行hibernate,则在hibernate.cfg.xml中加入这句话:
<property name="hibernate.current_session_context_class">jta</property>
如果是在一个单独的需要进行JDBC连接的java application中运行hibernate,则这样设置:
<property name="hibernate.current_session_context_class">thread</property>

4:Illegal attempt to associate a collection with two open sessions
这个问题是hibernate里面常见的问题,大部分的情况出现在update()方法上,同一个对象出现了两个session,一般情况下,有两种解决 方案,一是及时的刷新缓存,另外一种就是使用hibernate里的session.merge()来代替session.update()。因为这个功 能马上就完成了,不可能再放弃重写,只能孤注一掷的去解决问题。

5:出现Can't start a cloned connection while in manual transaction mode错误
原因一般是当你在一个SQL SERVER的JDBC连接上执行多个STATEMENTS的操作,或者是手动事务状态(AutoCommit=false) 并且使用默认的模式. direct(SelectMethod=direct) 模式.

解决办法
当你使用手动事务模式时,必须把SelectMethod 属性的值设置为 Cursor, 或者是确保在你的连接只有一个STATEMENT操作。
修改url,加入SelectMethod=cursor即可
如:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ys;SelectMethod=Cursor;User=ysassword=ys");

你可能感兴趣的:(java,Hibernate,xml)