「name + surname」文字列をキーとして使用して、「customers」テーブルにクエリを実行したいと考えています。
名前と姓は異なるフィールドに保存されます。
したがって、私のクエリは次のようになります。
SELECT
*
FROM
customers
WHERE
CONCAT(name,' ',surname) LIKE '%term%'
OR CONCAT(surname,' ',name) LIKE '%term%'
ただし、それはできません。私のクエリは JPA2基準クエリです。何かのようなもの:
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
Root<Customer> from = cq.from(Customer.class);
cq.select(from);
Predicate whereClause = cb.or(
cb.like(from.<String>get("name"), "%"+ r +"%"),
cb.like(from.<String>get("surname"), "%"+ r +"%"),
);
cq.where(whereClause);
TypedQuery<Customer> query = getEntityManager().createQuery(cq);
list = query.getResultList();
名前と姓の組み合わせで結果セットをフィルタリングするにはどうすればよいですか?