hibernate错误记录

(1)   今天在用hibernate向数据库插入数据的时候,出现了下面的错误:
一:duplicate key value violates unique constraint "xxxx主键";
二:Could not synchronize database state with session。
三:org.hibernate.exception.ConstraintViolationException: Could  not  execute JDBC batch update。
    这是个什么原因啊!查了下。原来是数据库里面的数据被手动的添加,修改了。而sequence的当前值却没有相应的改变。当然不能更新数据了。改变下sequence当前值就ok了。我用的postgreSQL可以直接修改,这个改变sequence的值得sql语句我也记不得了,用到的时候在搜吧!
     几点疑问:
       一:是数据库还是hibernate来管理这个sequence的,sequence是如何被管理的。
       二:为什么手动添加数据,sequence的值没有进行相应的改变。
       三:在hibernate里面,sequence和相应的对象是如何关联起来的。
(2)   Hibernate 异常org.hibernate.LazyInitializationException: could  not ini...
     错误页面提示
        could not initialize proxy - no Session
    控制台
       org.hibernate.LazyInitializationException: could not    initialize   proxy - no  Session

病症:这是一个lazy使用后的Exception,使用迟时加载,在session(hibernate里的session),关闭后使用该对象的未加载变量,也就是说session已经关闭,没有保存到内存中,然后你使用了,导致该异常。
      在hibernate3中,所有的实体设置文件(user.hbm.xml)中的lazy属性都被默认设成了true,就是当这个类没有被调用时,延时加载,导致了以上情况的发生,在配置文件中将lzay属性设为false就可以了。

----------------------------------------------------------------

原因:
<may-to-one>or<one-to-may>的lazy属性默认为:lazy = "proxy"
解决:<many-to-one>   & <set> 中设置 lazy="false"




你可能感兴趣的:(sql,Hibernate,exception,jdbc,PostgreSQL)