如何通过id创建hibernate关联?
问题描述:
这是一个Client
实例,其中id
和Order
实例为clientId
。有没有办法执行左连接Order
到Client
而不添加任何字段Order
? 结果SQL建议立即进行删除是这样的:如何通过id创建hibernate关联?
Select * from Client left join Order ON Order.clientId = Client.id
注意Order.clientId
可以为空。冬眠有没有技巧?
答
我建议您从客户端添加一对多关系到订单。
public class Client{
@OneToMany
private List<Order> orders = new ArrayList<Order>();
public List<Order> getOrders() {
return orders;
}
public void setOrder(List<Order> orders){
this.orders = orders;
}
}
那么做到这一点:
EntityManager em = factory.createEntityManager();
Query query = em.createQuery("SELECT x FROM Client left join FETCH x.orders");
List<Client> clients = query.getResultList();