質問

My Code is

@Transactional(propagation = Propagation.REQUIRED)
public void saveIndent(StockRequisitionCumIssue stockRequisitionCumIssue,
    List<StockRequisitionCumIssueDetail> srciDetails,
    List<StockRequisitionCumIssueDetail> removedObjects) {

    sessionFactory.getCurrentSession().clear();
    for (StockRequisitionCumIssueDetail srciDetail : removedObjects) {
        objectLoader.delete(StockRequisitionCumIssueDetail.class, srciDetail);
    }

    objectLoader.save(StockRequisitionCumIssue.class, stockRequisitionCumIssue);

    for (StockRequisitionCumIssueDetail srciDetail : srciDetails) {

        srciDetail.setStockRequisitionCumIssue(stockRequisitionCumIssue);
        objectLoader.save(StockRequisitionCumIssueDetail.class, srciDetail);

        item.setOpeningQuantity(item.getOpeningQuantity().subtract(srciDetail.getQuantityIssued()));
        item.setTotalValuation(item.getOpeningQuantity().multiply(item.getStandardCost()));
        sessionFactory.getCurrentSession().update(item);
        objectLoader.save(Item.class, item);
    }
}

I am trying to update the item Object.But it is not allowing me to update the same item twice.It is throwing a hibernate nonuniqueobjectexception.Please help me if you have a solution.

Thanks in advance.

正しい解決策はありません

他のヒント

Not sure where exactly you get the exception, but if you try to save (I assumed this is what ObjectLoader.save() does..) the same object multiple times, Hibernate will throw an exception as object with the identifier (PK) already exists. Use saveOrUpdate instead or just removed this line as the update should already have done the work.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top