java - JPA 选择带有 where 子句的查询

标签 java jpa

我想写一个 select 语句,但不知道如何写 where 子句...

我的代码:

CriteriaQuery query = entityManager.getCriteriaBuilder().createQuery();
query.select(query.from(SecureMessage.class)).where();

这是在我向其传递字符串的方法中。我只想获取与我传递给方法的字符串值匹配的行。

最佳答案

在 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"));

在 JPQL 中:

Query query = entityManager.createQuery("Select sm from SecureMessage sm where sm.someField=:arg1");
query.setParameter("arg1", arg1);

看, http://en.wikibooks.org/wiki/Java_Persistence/Querying#Criteria_API_.28JPA_2.0.29

关于java - JPA 选择带有 where 子句的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5136366/

相关文章:

java - jOOQ - 插入多个数据并获取生成的 ID 的一般方法

java - Java 中的 corba 问题

Java正则表达式如何匹配_、/或/123?

java - 在 FOR 中声明变量一次

java - 如何停用 Spring Data 异常转换

java - 在 JPA 中传递以持久保存的分离实体以进行批量插入

java - 使用现有的 JPAQuery 作为子查询

java - 如何删除eclipse中对象和方法调用之间的空间

JPA 在持久化时将 TIMESTAMP 字段设置为 CURRENT_TIMESTAMP

java - SQL 查询 1 :n relation, 查找具有两个匹配子项的所有实体