我知道是我的upate出错了,而且这两条update语句都是hibernate生成的,是对 一个一对多的模型保存时hibernate自动生成的,没有这两条update语句就不提示错误大家帮着分析分析还有hibernate运行时可不可以显示执行的sql语句啊,不要显示一堆问号的

解决方案 »

  1.   

    上面没贴好,org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
            at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:74)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
            at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:179)
            at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
            at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
            at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:675)

      

  2.   

    一对多:一端有没有设置inverse="true"?
    某字段有没有设置成unique,发生冲突?仔细检查下,这种问题很多的。hibernate可以显示完全sql语句,但你要安装插件,比如:p6spy.jar
      

  3.   

    在配置文件里把show_sql属性值置为true,<property name="show_sql">true</property>,然后把生成SQL 语句生跑一遍,看看报不报错.
      

  4.   

    回复人: daomei(伤心渔夫) ( ) 信誉:100  2005-4-30 17:21:55  得分: 0  还有hibernate运行时可不可以显示执行的sql语句啊,不要显示一堆问号的
    ----------------------------------------
    你可以把工程下面的log4j.properties里面的### log JDBC bind parameters ### 
    log4j.logger.net.sf.hibernate.type=info
     改为: log4j.logger.net.sf.hibernate.type=debug就可以看到SQL语句中参数了