org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [com.sinosoft.application.prpall.dto.domain.GuProposalCommissionDto#com.sinosoft.application.prpall.dto.domain.GuProposalCommissionDto@c012a3b2]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.sinosoft.application.prpall.dto.domain.GuProposalCommissionDto#com.sinosoft.application.prpall.dto.domain.GuProposalCommissionDto@c012a3b2]
应该是因为上面执行了删除,下面执行了插入
guCommissionDtoTempNow = new GuProposalCommissionDto();
guCommissionDtoTempNow.setProposalNo(proposalNo);
guCommissionDtoTempNow.setRiskCode(guProposalRiskDto.getRiskCode());
guProposalCommissionDao.deleteByObject(guCommissionDtoTempNow);
GuProposalCommissionDto guCommissionDtoTemp = new GuProposalCommissionDto();
guCommissionDtoTemp.setProposalNo(proposalNo);
guCommissionDtoTemp.setSerialNo(new Integer(++GuProductPremiumCalculateServiceSpringImpl.serialNo));
guCommissionDtoTemp.setPlanCode(guProposalRiskDto.getPlanCode());
guCommissionDtoTemp.setRiskCode(guProposalRiskDto.getRiskCode());
guCommissionDtoTemp.setSubProposalNo(guProposalRiskDto.getSubProposalNo());
guCommissionDtoTemp.setCommissionType(gsRulesMainDto.getDealType());
if("201".equals(gsRulesMainDto.getDealType())){
guCommissionDtoTemp.setSharerType(gsRulesMainDto.getSharerType());
}else{
guCommissionDtoTemp.setSharerType("3");
}
guCommissionDtoTemp.setSharerCode(gsRulesMainDto.getSharer());
guCommissionDtoTemp.setCurrency(guProposalRiskDto.getCurrency());
guCommissionDtoTemp.setCommissionGrossPercent(new Double(GrossPercent));
guCommissionDtoTemp.setCommissionNetPercent(new Double(Percent));
guCommissionDtoTemp.setCommissionPercent(new Double(Percent));
payAmount= DataUtils.round(DataUtils.round(riskFee * (new Double(Percent)).doubleValue()/100,GuProductPremiumCalculateServiceSpringImpl.TEN_DIGIT), GuProductPremiumCalculateServiceSpringImpl.TWO_DIGIT);
payAmount=DataUtils.round(DataUtils.round(payAmount,GuProductPremiumCalculateServiceSpringImpl.TEN_DIGIT), GuProductPremiumCalculateServiceSpringImpl.TWO_DIGIT);
guCommissionDtoTemp.setOrgCommissionAmount(new Double(payAmount));
guCommissionDtoTemp.setCommissionAmount(new Double(payAmount));
guCommissionDtoTemp.setSubProposalNo(guProposalRiskDto.getSubProposalNo());
guCommissionDtoTemp.setMainSubAccountInd("1");
guCommissionDtoTemp.setMiddleCostInd("0");
guCommissionDtoTemp.setRuleId(gsRulesMainDto.getRuleID());
guProposalCommissionDao.insert(guCommissionDtoTemp);
最開始是相同名字,所以導致報錯