データベーステーブルに保存する必要があるDTOクラスのリストがあります。私が追跡することができない何らかの未知の理由により、最後のアイテムのみがデータベースに保存されています。Hibernate Transaction:リストの最後の項目のみがテーブルに保存されます
class TestService {
public void saveData(List<OrderDTO> dtolist) {
//exception handling properly
transaction.begin();
manager.saveAlldata(dtolist);
transaction.commit();
}
}
Class TestManager {
public void saveAlldata(List<OrderDTO> dtolist) {
//exception handles properly
for(OrderDTO dto: dtolist){
OrderPersist persist = new OrderPersistent();
persist.setId(dto.getId());
persist.setItem(dto.getItem());
//save(persist) or merge(persist);
}
}
は、私は、例えば2つのアイテムの詳細を持っていると仮定し、サンプルのサービスとマネージャクラスの下に検索id = 1、Item = S_001、Id = 2、Item = S_002をdtoリストに追加すると、最後の項目(2、S_002)のみがテーブルに保存されます。
この最初の部分は、説明したものと同じです。Save = session.Save()、merge = entityManager.merge(); は2番目の部分を試します – Bibhaw