Question

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.

No correct solution

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top