我有一个使用hibernate的springboot应用程序,我试图运行一个本机查询以插入表societate_uses_conts
中。字段societate_id
和cont_id
都是外键。
我有以下尝试:
Query insertQuery = entityManager.createNativeQuery("insert into societate_uses_conts (societate_id, cont_id) values ( ?, ?)")
.setParameter(1, 1)
.setParameter(2, 1);
insertQuery.executeUpdate();
这很好,插入正确的值。
我有第二次尝试:
Query insertQuery = entityManager.createNativeQuery("insert into societate_uses_conts (societate_id, cont_id) values ( ?, ?)")
.setParameter(1, 1L)
.setParameter(2, 1L);
insertQuery.executeUpdate();
这将引发以下异常:
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement] with root cause
java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`contab_resource`.`societate_uses_conts`, CONSTRAINT `FK620nuyuxnu39nketctadg8c0m` FOREIGN KEY (`cont_id`) REFERENCES `conts` (`id`))
这两个字段均由Entities组成,类型为Long。我需要在本机查询中插入Long值。
那为什么会这样,我该如何解决呢?