代码之家  ›  专栏  ›  技术社区  ›  Jose Diaz

在JPA中实现示例查询功能

  •  4
  • Jose Diaz  · 技术社区  · 15 年前

    你知道实现Hibernate之类的东西的方法吗 QBE (通过示例查询)在JPA中?

    对于我的问题域,使用它的另一种方法是使用某种字符串操作动态地构建一个SQL查询,这是我希望避免的。

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

    有什么建议吗?

    4 回复  |  直到 15 年前
        1
  •  8
  •   Jim Tough    15 年前

    在JPA2.0中,最接近的等价物称为 标准API . 它不存在于JPA 1中。

    下面是一个示例:

    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
  •  9
  •   Community Mohan Dere    9 年前

    QBE在JPA 1或2中不可用。更多细节请看 here

        3
  •  1
  •   kenglxn    13 年前

    不久前我也面临同样的问题。

    我发现使用JPA标准API有点麻烦,所以我决定在上面做一个抽象。

    它是一个小型、灵活、简单的图书馆: https://github.com/kenglxn/QueryByExample

    希望它能对其他有同样问题的人有用。

    测试用例有几个实际例子: https://github.com/kenglxn/QueryByExample/blob/master/src/test/java/net/glxn/qbe/QBETest.java

        4
  •  0
  •   Monachus    13 年前

    很久以前,我不得不挠我的手,我决定自己动手。

    您可以在sourceforge获得: svn://svn.code.sf.net/p/jpaco/code/jpaco代码