JPA 导航单向关系

JPA navigate unidirectional relationship

我有一个单向关系。这里我有 Employee 和 Andress 实体。在 Employee 实体中,我有以下代码:

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "HOME_ADDRESS")
private Address homeAddress;

当我只有 Adress 实体时,找到 Employee 实体的正确方法是什么?我只能通过 jpql 做到这一点吗?

例如,如果您有地址的 ID,您可以这样做

select e from Employee e where e.homeAddress.id = :addressId

使用 Hibernate 标准 API,它看起来像这样

Criteria criteria = session.createCriteria(Employee.class);
criteria.createAlias("homeAddress", "homeAddress");
criteria.add(Restrictions.eq("homeAddress.id", addressId);
Employee employee = (Employee)criteria.uniqueResult();