2017-02-17 13 views
0

私は、Stock、StockHistoryおよびStockOpenCloseという3つのエンティティを持っています。各エンティティには共通の列stock_idがあります。私の問題は、私はそれぞれにデータのリストを保存しなければならないということです。hibernate javaを使用してデータベースに保存するデータのリスト

for (Stock stok : stockList) { 
        session.saveOrUpdate(stok); 
        session.flush(); 

        for (StockOpenAndClose openStk : stockOpenCloseList) { 
         if (stockOpenCloseList != null) { 
          openStk.setStock_id(stok.getStock_id()); 
          session.save(openStk); 
          session.flush(); 
         } 
        } 
        for (StockHistory stkHis : stkHisList) { 
         stkHis.setStock_id(stok.getStock_id()); 
         session.saveOrUpdate(stkHis); 
         session.flush(); 
        } 
} 

私はこのように保存しています。データは保存されています。これは間違いです。 stock_idは、各ループの繰り返しごとに同じになるためです。私は株価指数を両方ともStockHistory,StockOpen閉じるエンティティに対応させたいと思います。どうすればいいですか?誰でも私を修正できますか?

+0

最初の「カスケードを休止状態」を知るならば、それは、stockOpenCloseTable良くかつ簡単になりますので、私は株在庫オブジェクトを格納する必要があります – LowCool

+0

@ LowCool私は既にJoinColumnとManyToOne関係を行っている。 – Jiji

答えて

0

このような意味ですか?

for (int i = 0; i < stockList.size(); i++) { 
    Stock stok = stockList.get(i); 
    StockOpenAndClose openStk = stockOpenCloseList.get(i); 
    StockHistory stkHis = stkHisList.get(i); 
    session.saveOrUpdate(stok); 
    session.flush(); 

    openStk.setStock_id(stok.getStock_id()); 
    session.save(openStk); 

    stkHis.setStock_id(stok.getStock_id()); 
    session.saveOrUpdate(stkHis); 
    session.flush(); 
} 

いますが、uはあなたが、あなたの株式のためのstockHistoryを@PrimaryJoinColumn使用することができるという点で、ウルエンティティモデルを構成するために必要なすべてのhere some example

+0

yea..thisこれが働いていて、私はこれで私の問題を解決することができます。そして確かに私は "冬眠のカスケード"を試みます。ありがとうございました – Jiji

関連する問題