Frage

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.

Keine korrekte Lösung

Andere Tipps

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top