使用hibernate java在数据库中保存数据的列表
我有3个实体名为Stock、StockHistory和StockOpenClose。每个实体中都有一个公共列stock_id。我的问题是,我必须将数据列表保存到每个数据库中使用hibernate java在数据库中保存数据的列表,java,spring,hibernate,Java,Spring,Hibernate,我有3个实体名为Stock、StockHistory和StockOpenClose。每个实体中都有一个公共列stock_id。我的问题是,我必须将数据列表保存到每个数据库中 for (Stock stok : stockList) { session.saveOrUpdate(stok); session.flush(); for (StockOpenAndClose
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();
}
}
我这样保存数据,我知道这是错误的。因为根据for each循环迭代,stock_id将是相同的。我想在股票历史和股票开市实体中获得相应的股票id。我该怎么做?有人能纠正我吗?你是说这样吗
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();
}
for(int i=0;i
但是,如果您了解“hibernate cascade”(hibernate cascade),它将变得更好、更简单。首先,您需要配置您的实体模型,以便您可以使用@PrimaryJoinColumn为您的股票、股票历史、,库存开闭表所以你需要储存你的库存object@LowCool我已经完成了JoinColumn和一个多人关系。是的。这是有效的,目前我可以用它解决我的问题。当然,我会尝试“hibernate cascade”。非常感谢。