문제

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