据我所知,UPDATE和DELETE可以通过 NamedQueries 完成。
然而,
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类似的事情。
Namedqueries 上的SELECT没有错。
使用 NamedQueries 更改SQL表的内容是否还有其他内容?
// ================================
ADD:
我正在使用 namedquery 。
据我所知,在namedQueries上没有必要打开事务并提交它。
query.executeUpdate();
给出了运行时错误。
// ================================
ADD2:
除了以下DataNucleus建议的添加之外,代码没有给出编译或运行时错误。请参阅我上面关于该建议的上一版。
答案 0 :(得分:1)
考虑实际执行查询?你在那里所做的就是创造它。
query.executeUpdate()
http://www.datanucleus.org/products/accessplatform/jpa/jpql.html#JPQL_UPDATE_Queries