为什么不能在休眠NativeQuery中将Long值设置为参数?

时间:2019-04-29 11:57:03

标签: hibernate jpa

我有一个使用hibernate的springboot应用程序,我试图运行一个本机查询以插入表societate_uses_conts中。字段societate_idcont_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值。

那为什么会这样,我该如何解决呢?

0 个答案:

没有答案