JPA Criteria 类似于 Hibernate Criteria Alias

use*_*669 4 java jpa criteria

假设我的类型包含带有 propertyUser的类的对象。TenantName

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

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

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

我怎样才能对 JPA Criteria 做同样的事情?

谢谢你的帮助。

cri*_*zis 5

假设User与 处于一对一关系Tenant

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();
Run Code Online (Sandbox Code Playgroud)