gpt4 book ai didi

javax.persistence.PersistenceException : org. hibernate.exception.GenericJDBCException:无法使用executeQuery()发出数据操作语句

转载 作者:行者123 更新时间:2023-12-01 17:30:17 25 4
gpt4 key购买 nike

我在数据库中插入数据很好。问题是插入数据后我试图获取最后插入的数据主键列。但我不知道如何解决这个问题。

注意:我正在使用 jpql,谢谢

public void insertData(String hcpHceId) {
EntityManager em = getEntityManager();

em.getTransaction().begin();
// Query query = em.createNativeQuery("INSERT INTO mdm_id (hcp_hce_id) VALUES(:id)" );
Query query = em.createNativeQuery("INSERT INTO mdm_id (hcp_hce_id) VALUES(?)");
query.setParameter(1, hcpHceId);
query.executeUpdate(); // Successfully inserted data
List list = query.setMaxResults(1).getResultList(); // Error line
em.getTransaction().commit();

} catch (Exception error) {
error.printStackTrace();
logger.error(error.getMessage());
} finally {
em.close();;
}


}

最佳答案

您正在尝试从同一执行查询中检索列表。查询是一个不可变的对象。您必须使用正确的 select 语句创建一个新查询,以便能够从数据库中检索数据。

执行更新后,使用 v.g. 创建新查询。 (因为您没有使用 native sql 显示实体图):

Query retQuery = em.createNativeQuery("SELECT hcp_hce_id FROM mdm_id LIMIT 1");
String id = (String) retQuery.getSingleResult();
assert(id == hcpHceId);

关于javax.persistence.PersistenceException : org. hibernate.exception.GenericJDBCException:无法使用executeQuery()发出数据操作语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61135031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com