我正在尝试使用 jpa 更新一个简单的表。我为它写了一个 jpa 命名查询
@NamedQuery(name="updatedetails",query="update myentity set enddesc=?, startdesc=? Where id=?")
Run Code Online (Sandbox Code Playgroud)
我的代码如下
em.createNamedQuery("updatedetails",myentity.class).serParameter(1, "abcd").serParameter(2,"gjvg").serParameter(3, "gghjj").executeUpdate();
Run Code Online (Sandbox Code Playgroud)
myentity 是我的班级名称
它向我抛出以下错误
Encountered "=" at character but expected ["."] While parsing the query
Run Code Online (Sandbox Code Playgroud)
查询有什么问题吗
我相信 JPA 命名查询应该使用实际名称是参数占位符,而不是?,后者用于准备好的语句。所以这样的事情应该有效:
@NamedQuery(name="updatedetails",query="update myentity set enddesc = :enddesc, startdesc = :startdesc Where id = :id")
List<myentity> results = em.createNamedQuery("updatedetails", myentity.class)
.setParameter("enddesc", "abcd")
.setParameter("startdesc", "gjvg")
.setParameter("id", "gghjj")
.getResultList();
Run Code Online (Sandbox Code Playgroud)
作为旁注,您可能应该让您的班级名称以大写字母开头,即调用它MyEntity,而不是您目前拥有的名称。
| 归档时间: |
|
| 查看次数: |
5651 次 |
| 最近记录: |