Почему я не могу установить значение Long в качестве параметра в спящем NativeQuery? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть приложение 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.Мне нужно вставить длинные значения в собственный запрос.

Так почему это так и как я могу это решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...