java - JPA Criteria 类似于 Hibernate Criteria Alias

标签 java jpa criteria

假设我的类型为 User,其中包含带有属性 Name 的类 Tenant 的对象。

我想从数据库用户中选择,其租户包含给定名称。

在 Hibernate Criteria 中,我可以使用别名简单地实现此目标。

List cats = session.createCriteria(User.class)
    .createAlias("tenant", "tenant")
    .add(Restrictions.eqProperty("tenant.name", "sampleTenant") )
    .list();

我如何使用 JPA Criteria 做同样的事情?

感谢您的帮助。

最佳答案

假设用户租户处于一对一关系:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<User> cq = cb.createQuery(User.class);
Root<User> root = cq.from(User.class);
cq = cq.where(cb.equal(root.join("tenant").get("name"), "sampleTenant"));
em.createQuery(cq).getResultList();

关于java - JPA Criteria 类似于 Hibernate Criteria Alias,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40378519/

相关文章:

java - @JoinColumnS 涉及一对一关系中的 EAGER 获取

java - Hibernate:我如何加入自己的表格?

java - JFrame 未正确绘制

Java 基本数组 List.contains 无法按预期工作

java - 制作二十一点程序,从方法返回数组时遇到问题

jpa - QueryDSL 中的平均日期差异

java - Android ListView 未在滚动时重新绘制

java - 如何在 JPA 中使用 Enum 作为 NamedQuery 参数

java - 标准:搜索两个不同的实体类

grails - 在grails条件中转义关联名称不与包含类变量名称冲突