测试多对多关联时报错:
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at com.hibernate.manytomany.test.manytomany.add(manytomany.java:83)
at com.hibernate.manytomany.test.manytomany.main(manytomany.java:21)
Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (NM.FK2E2EF2DED58A35C3) violated - parent key not found
at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:458)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:3907)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
...
问题原因:由于类配置文件关联出现问题。
解决方案:修该类配置文件关联参数。
错误:
<hibernate-mapping package="com.hibernate.manytomany.domain">
<class name="Teacher">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<set name="students" table="teacher_student">
<key column="teacher_id"></key>
<many-to-many class="Teacher" column="student_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.hibernate.manytomany.domain">
<class name="Student">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<set name="teachers" table="teacher_student">
<key column="student_id"></key>
<many-to-many class="Teacher" column="teacher_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
修改后的:
<hibernate-mapping package="com.hibernate.manytomany.domain">
<class name="Teacher">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<set name="students" table="teacher_student">
<key column="teacher_id"></key>
<many-to-many class="Student" column="student_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
分享到:
相关推荐
nested exception is org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#50001] 解决: hibernate.dialect=org.hibernate.dialect.MySQL5...
### 错误三:Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException 此错误表示在执行批量更新操作时违反了数据库约束,可能是外键约束、唯一性约束等...
10. 异常体系:理解Hibernate的异常体系,如ConstraintViolationException、HibernateException等,可以帮助开发者更好地处理错误。 11. 数据库连接管理:Hibernate通过ConnectionProvider管理数据库连接,支持多种...
10. **异常处理**:在处理数据库操作时,需要捕获并适当地处理Hibernate的异常,如`HibernateException`、`ConstraintViolationException`等。 通过上述步骤,我们可以将Hibernate3与SFS2X结合,实现高效、便捷的...
无论是简单的业务场景还是复杂的验证逻辑,Hibernate Validator 都能提供优雅的解决方案。在实际开发过程中,结合其丰富的注解和灵活的扩展性,可以大大降低数据验证的复杂度,让开发者更加专注于业务逻辑的实现。
5. 异常体系:理解Hibernate的异常体系,如HibernateException、ConstraintViolationException等。 6. Session和Transaction:理解Session的生命周期和事务管理,以及它们在实际应用中的最佳实践。 本章作为...
Java错误大全涵盖了从基础异常到特定开源框架如Hibernate和Struts中可能出现的异常情况。以下是一些关键知识点的详细说明: 1. **错误类型:**Java中的错误通常分为两种主要类型,异常(Exception)和错误(Error)...
1. 异常处理:了解Hibernate的异常体系,如ConstraintViolationException,OptimisticLockingFailureException等,以应对可能出现的问题。 2. 关联映射:掌握一对一、一对多、多对多关联的配置和使用,如@OneToOne, ...
Hibernate 有一套自己的异常体系,如 HibernateException、ConstraintViolationException 等,方便开发者捕获并处理错误。 这个“hibernate包”中可能包含了 Hibernate 的核心库、数据库驱动、配置文件等,确保...
11. 异常处理:学习Hibernate常见的异常,如ConstraintViolationException、ObjectRetrievalFailureException等,以及如何进行相应的错误处理。 12. 实战演练:结合提供的"代码"和"思路图",通过实际编写和运行代码...
Hibernate有一套自己的异常体系,如HibernateException、ConstraintViolationException等,帮助开发者定位和解决问题。 9. 高级特性 - 联合主键:多个字段共同组成主键。 - 继承映射:支持单表继承、多表继承等...
Hibernate抛出的异常通常继承自JDBC的SQLException,如ConstraintViolationException(违反约束),StaleObjectStateException(过时对象状态)等,需要正确捕获并处理。 通过【Hibernate_Demo】项目,开发者可以...
11. 异常体系:Hibernate有一套完整的异常体系,如HibernateException、ConstraintViolationException等,这些异常可以帮助开发者识别和处理数据库操作中出现的问题。 12. 高级特性:包括 Criteria API、HQL、子...
- Hibernate抛出的异常通常继承自JDBC的SQLException,如ConstraintViolationException(违反约束),ObjectRetrievalFailureException(对象检索失败)等。 9. 批量操作: - 使用`Session.saveAll()`, `Session....
8. 异常处理:在使用Hibernate时,可能会遇到如HibernateException、ConstraintViolationException等异常,了解这些异常的含义及处理方法对于排查问题至关重要。 9. 实战应用:书中通过实际的项目案例,详细展示了...
3. 异常体系:Hibernate有自己的异常体系,如HibernateException、ConstraintViolationException等,便于捕获和处理错误。 综上所述,Hibernate帮助文档详尽地介绍了如何在Java应用中有效地利用ORM技术,提升开发...
Hibernate有一套自己的异常体系,如HibernateException、ConstraintViolationException等,这些异常可以帮助开发者快速定位和解决问题。 9. 扩展性与插件机制: Hibernate具有良好的扩展性,如插件化的缓存实现...
Hibernate 抛出的异常如ConstraintViolationException(违反约束条件)、OptimisticLockingFailureException(乐观锁失败)等,需要在程序中适当地捕获和处理。 8. 批量操作: Hibernate 支持批处理,如批处理...
10. **异常处理**:了解Hibernate常见的运行时异常,如ConstraintViolationException,HibernateException等,以及如何处理它们。 11. **问题排查**:描述中提到的例子存在问题,这可能是配置错误,实体映射不正确...
12. **异常处理**:理解和处理Hibernate特有的异常,如HibernateException、ConstraintViolationException等,是使用过程中必须面对的。 这个"Hibernate_01_HelloWorld"示例很可能是展示了一个简单的Hibernate应用...