Hibernate 5 does not maintain insertion order while updating batch records if there is a circular depedency in entity tables.. The same code works well in Hibernate 3.x Our models: nms_dedup_conf has a column called corrincconfig which is dependent on “id” column of nms_mgmtevent_config table (Many-to-One mapping) This id of nms_mgmtevent_config table links with nms_incident_config table. In turn, nms-incident_config has dedupconfiguration_id linking to the nms_dedup_conf’s id column as depicted below: This is in Dedup class
@ManyToOne(optional = true, fetch = FetchType.LAZY)
@JoinColumn(name = "CORRINCCONFIG", nullable = true)
private MgmtEventConfig correlationIncidentConfig;
The issue is: Even though the nms_dedup_config table has a foreign key relationship with nms_mgmtevent_config table, hibernate tris to insert records into this table, instead of the table its referencing, i.e., nms_mgmtevent_config table and fails with the following error: 06:25:14.661 [main] ERROR org.hibernate.engine.jdbc.batch.internal.BatchingBatch - HHH000315: Exception executing batch [java.sql.BatchUpdateException: Batch entry 3 insert into NMS_DEDUP_CONF (UUID, VERSION, ENABLE, CRITERIA, CORRINCCONFIG, DEDUPCOUNT, HR_INTERVAL, MIN_INTERVAL, SEC_INTERVAL, ID) values ('91c7b4a5-c02f-46b2-8824-5d09c14b12de', 0, '1', 4, 15930, 10, 4, 0, 0, 16293) was aborted. Call getNextException to see the cause.], SQL: insert into NMS_DEDUP_CONF (UUID, VERSION, ENABLE, CRITERIA, CORRINCCONFIG, DEDUPCOUNT, HR_INTERVAL, MIN_INTERVAL, SEC_INTERVAL, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 06:25:14.672 [main] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Batch entry 3 insert into NMS_DEDUP_CONF (UUID, VERSION, ENABLE, CRITERIA, CORRINCCONFIG, DEDUPCOUNT, HR_INTERVAL, MIN_INTERVAL, SEC_INTERVAL, ID) values ('91c7b4a5-c02f-46b2-8824-5d09c14b12de', 0, '1', 4, 15930, 10, 4, 0, 0, 16293) was aborted. Call getNextException to see the cause. 06:25:14.673 [main] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - ERROR: insert or update on table "nms_dedup_conf" violates foreign key constraint "fkm8ksah73i36pepu7rwidvsor1" Detail: Key (corrincconfig)=(15930) is not present in table "nms_mgmtevent_config". |