簡體   English   中英

如何使用hibernate加入兩個表?

[英]How can I Join two tables using hibernate?

我有一個OrderItem(order_id, product_id)Product(product_id, ...)Order(order_id, ...)表。 我如何使用Criteria以特定順序獲得所有產品?

Criteria orderItemCriteria = session.createCriteria(OrderItem.class);
Criteria orderCriteria = orderItemCriteria.createAlias("order", "o");
orderCriteria = orderCriteria.add(Restrictions.eq("o.id", orderId));
List<Product> orderProducts = orderItemCriteria.setProjection(Projections.property("product")).list();

這將獲得所有product_ids 如何獲得所有產品詳細信息?

注意*當我嘗試訪問除Id以外的任何產品屬性時,我得到lazyInitializtionException ,我不需要將Fetching更改為EAGER。

如果是遺留criteria api,您可以使用.setFetchMode("product", FetchMode.EAGER)方法: 請參閱4.2文檔

對於JPA標准API,您將使用.fetch( OrderItem_.product )方法: 請參閱5.4文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM