2010-11-10 42 views
2

我想獲取OneToMany關係中的特定行。例如。獲得訂單的最廉價的項目JPA/Hibernate +從onetomayrelation獲取特定項目

例子:

public class Order { 

@Id 
@Column(name = "ORDER_ID") 
private Long id; 

??? 
private Item cheapestItem; 

} 

public class Item { 

@Id 
@Column(name = "ITEM_ID") 
private Long id; 

private Long price; 

} 

我怎樣才能做到這一點?

+0

不應該是'Item cheapestItem'?如果你真的想要最便宜的訂單,你應該把它放在'Item'類 – 2010-11-10 10:10:14

+0

這是正確的。我改變了這個例子 – 2010-11-10 10:50:16

回答

1

嘗試在休眠@Where註解中指定的where子句(不知道是否可以將其應用到非集合,雖然)

1

我想(...)的最廉價的項訂購

如果你真的想要得到的最便宜Item(實際上沒有堅持吧),它應該是可行的一個ManyToOneJoinColumnOrFormula。需要Hibernate 3.5+,請參閱例如HHH-4382HHH-5041的問題。

只檢索價格會比以前的Hibernate版本更容易和可行。見Hibernate Derived Properties - Performance and Portability