У меня есть такие классы:
@Entity
public class Renter {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@OneToOne
private House house;
}
@Entity
public class House {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@OneToMany(mappedBy="house")
private List<Room> rooms;
}
@Entity
public class Room {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@ManyToOne
private House house;
@Column
private Integer type;
}
Как найти всех арендаторов, которые живут в доме, в котором есть комнаты с типом "1".Если бы корень был домом, я мог бы выполнить подобный код
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<House> queryOrganisation = criteriaBuilder.createQuery(House.class);
Root<House> rootOrganisation = queryOrganisation.from(House.class);
queryOrganisation.select(rootOrganisation).where(criteriaBuilder.equal(rootOrganisation.join("rooms").get("type")), 1);
Но путь не имеет метода .join, что я могу сделать?