Java JPA中的命名查询
据我所知,更新和删除可以通过NamedQuery完成Java JPA中的命名查询,java,sql,jpa,named-query,Java,Sql,Jpa,Named Query,据我所知,更新和删除可以通过NamedQuery完成 query.executeUpdate(); 但是, void updateName (int ID, String name) { EntityManager entityManager = Persistence.createEntityManagerFactory("uPU").createEntityManager(); Query query = entityManager.create
query.executeUpdate();
但是,
void updateName (int ID, String name) {
EntityManager entityManager =
Persistence.createEntityManagerFactory("uPU").createEntityManager();
Query query = entityManager.createNamedQuery("Users.updateName");
query.setParameter("name", name);
query.setParameter("id", ID);
}
没有进行更新
命名查询如下所示:
@NamedQuery(name = "Users.updateName", query = "UPDATE Users u SET u.name = :name "
+ "WHERE u.id = :id "),
DELETE也发生了类似的事情
在NamedQuery上选择没有问题
使用NamedQueries更改SQL表的内容是否还有其他方法
//================================
加:
我正在使用namedquery
据我所知,在NamedQuery上打开事务并提交它是不必要的
query.executeUpdate();
给出一个运行时错误
//================================
地址2:
除了下面DataNucleus建议的添加之外,代码没有给出编译或运行时错误。关于这个建议,请参阅我的上一版本。是否考虑实际执行查询?你所做的就是创造它
query.executeUpdate()
请参见行注释后的“我的编辑”。特别强调命名查询。如果您有异常,您不认为人们会希望看到它及其堆栈跟踪吗?如果异常是TransactionRequiredException,那么这就是JPA规范所说的,如果不存在指定的tx或其他tx,则将抛出该异常-查看规范。显然,这也取决于您的JPA实现,因为一些例如DataNucleus JPA允许非事务操作。建议的添加是必不可少的。当您添加该选项时,异常/错误是什么?