我试图在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的正确方法是什么?
1条答案
按热度按时间tjvv9vkg1#
您可以像这样运行comand——在这里str_sql='insert into………'构建str_sql之前;
立即执行stru-sql;