您是否知道在JPA中实现类似Hibernate QBE
(按示例查询)的方法?
对于我的问题域,使用它的替代方法是使用某种字符串操作动态地构建SQL查询,这是我想要避免的。
我知道API中默认不支持此功能,但我认为它是构建动态查询的一种很棒的技术。
有什么建议吗?
答案 0 :(得分:9)
QBE在JPA 1.0或2.0中不可用。有关详细信息,请查看here
答案 1 :(得分:8)
在JPA 2.0中,最接近的等价物称为 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"));
答案 2 :(得分:1)
前一段时间我正面对同样的问题。
我发现使用JPA Criteria API有点麻烦,所以我决定在它之上进行抽象。
这是一个小而灵活的简单库:https://github.com/kenglxn/QueryByExample
希望这对同样问题的其他人有用。
测试用例有几个实际示例:https://github.com/kenglxn/QueryByExample/blob/master/src/test/java/net/glxn/qbe/QBETest.java
答案 3 :(得分:0)
很久以前我不得不划伤那个ich,我决定自己做。
你可以在sourceforge获得它: svn://svn.code.sf.net/p/jpaco/code/ jpaco-code