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.

Pas de solution correcte

Autres conseils

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top