Java 如何通过id创建hibernate关联?
这是一个具有Java 如何通过id创建hibernate关联?,java,hibernate,left-join,Java,Hibernate,Left Join,这是一个具有id的Client实例和具有clientId的Order实例。是否有一种方法可以在不为订单添加任何字段的情况下,将订单左连接到客户端? 结果SQL应该是这样的: Select * from Client left join Order ON Order.clientId = Client.id 请注意,Order.clientId可能为空。hibernate有什么诀窍吗?我建议您添加从客户到订单的一对多关系 public class Client{ @OneToMany
id
的Client
实例和具有clientId
的Order
实例。是否有一种方法可以在不为订单
添加任何字段的情况下,将订单
左连接到客户端
?
结果SQL应该是这样的:
Select * from Client left join Order ON Order.clientId = Client.id
请注意,
Order.clientId
可能为空。hibernate有什么诀窍吗?我建议您添加从客户到订单的一对多关系
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;
}
}
公共类客户端{
@独身癖
私有列表顺序=新的ArrayList();
公共列表getOrders(){
退货订单;
}
公共作废订单(列表订单){
这个。订单=订单;
}
}
然后这样做:
EntityManager em = factory.createEntityManager();
Query query = em.createQuery("SELECT x FROM Client left join FETCH x.orders");
List<Client> clients = query.getResultList();
EntityManager em=factory.createEntityManager();
Query Query=em.createQuery(“从客户端左侧选择x连接获取x.orders”);
List clients=query.getResultList();