在JPA中通过示例功能实现查询 [英] Implementing Query By Example functionality in JPA

查看:80
本文介绍了在JPA中通过示例功能实现查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您是否知道在JPA中实现类似Hibernate的方式 QBE (按示例查询)?



对于我的问题域,使用它的替代方法是使用某种字符串操作动态地构建SQL查询,这是我想要避免的。



我知道这在API中默认不支持,但我认为它是构建动态查询的一种很棒的技术。



有什么建议吗? 称为 Criteria API 。它在JPA 1.0中不存在。



以下是一个示例:

  CriteriaBuilder cb = em.getCriteriaBuilder(); 
CriteriaQuery c = cb.createQuery(Person.class);
Root person = c.from(Person.class);
c.select(person)
.where(cb.equal(person.get(name),Officer Friendly));


Do you know a way of implementing something like a Hibernate QBE (Query by Example) in JPA?

For my problem domain the alternative of using it will be to build a SQL query dynamically using some sort of string manipulation, something I would like to avoid.

I know this is not supported by default in the API, but I recognize it as a great technique for building dynamic queries.

Any suggestions?

解决方案

In JPA 2.0 the closest equivalent is called the Criteria API. It did not exist in JPA 1.0.

Here is a sample:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery c = cb.createQuery(Person.class);
Root person = c.from(Person.class);
c.select(person)
    .where(cb.equal(person.get("name"), "Officer Friendly"));

这篇关于在JPA中通过示例功能实现查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆