Java JPA导航单向关系

Java JPA导航单向关系,java,entity-framework,hibernate,jakarta-ee,jpa,Java,Entity Framework,Hibernate,Jakarta Ee,Jpa,我的关系是单向的。这里我有员工和Andress实体。在员工实体中,我有以下代码: @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name = "HOME_ADDRESS") private Address homeAddress; 当我只有Address实体时,找到Employee实体的正确方法是什么。我只能通过jpql来完成吗?如果您有地址的id,您可以这样做 select e from Employee e where e.homeAddre

我的关系是单向的。这里我有员工和Andress实体。在员工实体中,我有以下代码:

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

当我只有Address实体时,找到Employee实体的正确方法是什么。我只能通过jpql来完成吗?

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

select e from Employee e where e.homeAddress.id = :addressId
使用HibernateCriteriaAPI,它看起来是这样的

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

谢谢,我知道id,但是我可以不用jpql来做这个吗?哦,我误解了这个问题,我以为你在问jpql解决方案。我已经用Hibernate标准API示例编辑了我的答案。您还有其他想法吗?我不知道没有jpql有什么方法可以做到这一点,感谢您引入Criteria api:),但是jpql解决方案似乎更简单,所以我将使用它。也许你可以回答我的下一个问题-