De JPA-specificatie garandeert niet dat het verstrekte entiteitsobject wordt bijgewerkt nadat het is opgeslagen. Om de opgeslagen JPA-entiteit te krijgen, moet je de retourwaarde van de save()
. gebruiken methode. Uw service kan bijvoorbeeld op deze manier worden gewijzigd:
@Service
public class ClaimDetailService {
...
@Transactional
public ClaimDetail saveClaimDetail(ClaimDetail claimDetail) {
JpaRepository<ClaimDetail, Long> mailAuditLogLongJpaRepository = jpaRepositoryFactory.getRepository(ClaimDetail.class);
return mailAuditLogLongJpaRepository.save(claimDetail);
}
...
}
En uw voorbeeldcode zou zijn:
claimDetail.setActive(1);
claimDetail.setVersion(new Long(1));
claimDetail.setCreatedBy(new Long(1));
claimDetail.setCreatedDate(new Date());
ClaimDetail savedClaimDetail = claimDetailService.saveClaimDetail(claimDetail);
int temp = savedClaimDetail.getID()
Ook, hoewel niet direct gerelateerd aan uw probleem, hoeft u de Spring Data-opslagplaatsen niet te maken zoals u het hebt gedaan. Maak gewoon uw eigen interface die JPARepository uitbreidt.