У меня есть приложение springboot, использующее hibernate, и я пытаюсь запустить собственный запрос для вставки в таблицу 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`))
Оба поля сделаны из сущностей и имеют тип Long.Мне нужно вставить длинные значения в собственный запрос.
Так почему это так и как я могу это решить?