在采用getHibernateTemplate().save的时候,不能执行成功,后台报错
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:622)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:378)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:639)
at com.firsttech.ai.dao.common.impl.LogInOutDAOImpl.saveTicket(LogInOutDAOImpl.java:114)
Truncated. see log file for complete stacktrace
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
Truncated. see log file for complete stacktrace
java.sql.BatchUpdateException: ORA-01400: 无法将 NULL 插入 ("AIS"."T_SYS_TICKET"."LOGIN_ID") at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10698)
at weblogic.jdbc.wrapper.PreparedStatement.executeBatch(PreparedStatement.java:157)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
Truncated. see log file for complete stacktrace
>
<2012-5-29 下午02时41分47秒 GMT+08:00> <Error> <HTTP> <BEA-101083> <Connection failure.
java.net.ProtocolException: Didn't meet stated Content-Length, wrote: '5669' bytes instead of stated: '5659' bytes.
at weblogic.servlet.internal.ServletOutputStreamImpl.ensureContentLength(ServletOutputStreamImpl.java:410)
at weblogic.servlet.internal.ServletResponseImpl.ensureContentLength(ServletResponseImpl.java:1293)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1335)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1375)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
Truncated. see log file for complete stacktrace代码大概是:
public LogInOutDAOImpl(@Qualifier("AisSessionFactory") SessionFactory factory) {
super.setSessionFactory(factory);
}
Ticket ticket = new Ticket();
ticket.setId(ticketId);
ticket.setLoginID(userName);getHibernateTemplate().save(ticket);其中Ticket 是对应的javabean一直都能正常执行,今天新搭了个环境就出错了,同样的代码在其他环境没问题
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:622)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:378)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:639)
at com.firsttech.ai.dao.common.impl.LogInOutDAOImpl.saveTicket(LogInOutDAOImpl.java:114)
Truncated. see log file for complete stacktrace
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
Truncated. see log file for complete stacktrace
java.sql.BatchUpdateException: ORA-01400: 无法将 NULL 插入 ("AIS"."T_SYS_TICKET"."LOGIN_ID") at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10698)
at weblogic.jdbc.wrapper.PreparedStatement.executeBatch(PreparedStatement.java:157)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
Truncated. see log file for complete stacktrace
>
<2012-5-29 下午02时41分47秒 GMT+08:00> <Error> <HTTP> <BEA-101083> <Connection failure.
java.net.ProtocolException: Didn't meet stated Content-Length, wrote: '5669' bytes instead of stated: '5659' bytes.
at weblogic.servlet.internal.ServletOutputStreamImpl.ensureContentLength(ServletOutputStreamImpl.java:410)
at weblogic.servlet.internal.ServletResponseImpl.ensureContentLength(ServletResponseImpl.java:1293)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1335)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1375)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
Truncated. see log file for complete stacktrace代码大概是:
public LogInOutDAOImpl(@Qualifier("AisSessionFactory") SessionFactory factory) {
super.setSessionFactory(factory);
}
Ticket ticket = new Ticket();
ticket.setId(ticketId);
ticket.setLoginID(userName);getHibernateTemplate().save(ticket);其中Ticket 是对应的javabean一直都能正常执行,今天新搭了个环境就出错了,同样的代码在其他环境没问题
解决方案 »
- entity manager 对象null值异常
- J2EE中使用 水晶报表 求方法 有回报
- struts2在ACTION中给checkboxlist赋值
- weblogic不能正常创建连接池,这问题困扰我好几天了,大家帮帮忙啊!
- 请问Struts中的<html:button>标签中的property到底有什么用??请教一下,我是晕了
- hibernate中的SQLserver uniqueidentifier 类型
- 帮忙分析错误! 我不知道错哪了! 十万火急! 我用50分顶!
- MD5算法的幻数,标准写法和程序中的写法不一样,为什么?
- 写好的程序如何才能编译成.EXE文件?
- 请教一个算法的实现.
- 【奇怪】Struts2 不能获取客户端【部分】字段
- Java生成pdf中的下划线问题?
javabean中有其他的javabean,但是插入数据的时候没有用到关联的那个字段
应该不是数据库的问题,我用另外正常的环境连这同一个库的时候是能正常执行的
是不是环境上有哪需要设置之类的?
javabean中的javabean 为null
造成的,
java.sql.BatchUpdateException: ORA-01400: 无法将 NULL 插入 ("AIS"."T_SYS_TICKET"."LOGIN_ID")这句也可看出,有为null的。
hibernate 会自动保存对象的,包括对象中的对象。
在执行这条语句之前ticket里面都还有数据的,但是一执行getHibernateTemplate就出错了,不止save,就是只查询都出错