我想编写一个select语句,但无法弄清楚如何编写where子句...
我的代码:
CriteriaQuery query = entityManager.getCriteriaBuilder().createQuery();
query.select(query.from(SecureMessage.class)).where();
Run Code Online (Sandbox Code Playgroud)
这是我传递字符串的方法.我想只获取与Im传递给方法的字符串值匹配的行.
Jam*_*mes 22
在Criteria中,这类似于:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<SecureMessage> query = cb.createQuery(SecureMessage.class);
Root<SecureMessage> sm = query.from(SecureMessage.class);
query.where(cb.equal(sm.get("someField"), "value"));
Run Code Online (Sandbox Code Playgroud)
在JPQL中:
Query query = entityManager.createQuery("Select sm from SecureMessage sm where sm.someField=:arg1");
query.setParameter("arg1", arg1);
Run Code Online (Sandbox Code Playgroud)
见, http://en.wikibooks.org/wiki/Java_Persistence/Querying#Criteria_API_.28JPA_2.0.29
ser*_*nni 17
据我了解,方法参数应该是查询的参数.
所以,应该看起来像:
Query query = entityManager.getCriteriaBuilder().createQuery("from SecureMessage sm where sm.someField=:arg1");
query.setParameter("arg1", arg1);
Run Code Online (Sandbox Code Playgroud)
where arg1
- 您的方法String参数
归档时间: |
|
查看次数: |
59165 次 |
最近记录: |