2017-05-19 103 views
0

我有一個實體訂單和一個實體order_items(1-> n關係)。 我想要一個表格來顯示相關訂單項目的總和(數量)。這些是我的實體:加入休眠公式

@Entity(name="ORDERS") 
public class Order { 

    @Id 
    @GeneratedValue 
    @Column (name="order_id") 
    private long id; 

    @OneToOne 
    @JoinColumn(name="customer_id") 
    private Customer customer; 

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "order", cascade =CascadeType.ALL) 
    @JsonManagedReference 
    private List<OrderItem> orderItems=new ArrayList(); 



@Entity(name="ORDER_ITEMS") 
public class OrderItem { 
    @Id 
    @GeneratedValue 
    @Column (name="order_item_id") 
    private long id; 

    @Column (name="quantity") 
    private int quantity; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "order_id", nullable = false) 
    @JsonBackReference 
    private Order order; 

我想在Order實體中顯示總數量(子數的總和)的新字段。 我試着添加,以便在現場,但沒有工作

@Formula("select sum(oi.quantity) from ORDER_ITEMS oi where oi.order_id= order_id)") 
private int totalQuantity; 

你能幫我解決嗎?

+0

[休眠列指總的細節](的可能的複製http://stackoverflow.com/questions/44051748/hibernate-column-refer-the-total-of-details ) – pvpkiran

+0

這與http://stackoverflow.com/questions/44051748/hibernate-column-refer-the-total-of-details相同。不要以同樣的問題以不同的方式創建多個問題。這對任何人都沒有幫助。 – pvpkiran

+0

是不同的..在以前的帖子中,我問的方法有這個結果 - >公式。這篇文章是關於公式和他的行爲 – esoni

回答

0

溶液

@Formula("(select sum(oi.quantity) from ORDER_ITEMS oi where oi.order_id= order_id)") 
private int totalQuantity;