JPA中的NamedQueries

时间:2014-03-13 08:02:00

标签: java sql jpa named-query

据我所知,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建议的添加之外,代码没有给出编译或运行时错误。请参阅我上面关于该建议的上一版。

1 个答案:

答案 0 :(得分:1)

考虑实际执行查询?你在那里所做的就是创造它。

query.executeUpdate()

http://www.datanucleus.org/products/accessplatform/jpa/jpql.html#JPQL_UPDATE_Queries