java—如何使用nativequery插入db2并获取生成的id

3zwjbxry  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(432)

我试图在db2中插入一行,但是我可以找到如何获得生成的id。
有了这个代码,它就可以工作了,但我无法获取id:

String sql = "INSERT INTO MY_TABLE (MY_COLUMN) VALUES (?)";
    Query query = entityManager.createNativeQuery(sql);
    query.setParameter(1, "MY_VALUE");
    query.executeUpdate();

我做了一些研究,试着这样做:

String sql = "INSERT INTO MY_TABLE (MY_COLUMN) VALUES (?)";
    Query query = entityManager.createNativeQuery(sql);
    query.setParameter(1, "MY_VALUE");
    BigDecimal id = (BigDecimal) query.getSingleResult();

但我有个错误:

[org.hib.eng.jdb.spi.SqlExceptionHelper] (executor-thread-63) [jcc][t4][10103][10941][4.21.29] Method executeQuery cannot be used for update. ERRORCODE=-4476, SQLSTATE=null
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1535)
at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1574)
...

使用nativequery插入并获取生成的id的正确方法是什么?

tjvv9vkg

tjvv9vkg1#

您可以像这样运行comand——在这里str_sql='insert into………'构建str_sql之前;
立即执行stru-sql;

相关问题