JPA युक्ति इस बात की गारंटी नहीं देती है कि प्रदत्त निकाय वस्तु को सहेजने के बाद अद्यतन किया जाएगा। सहेजी गई जेपीए इकाई प्राप्त करने के लिए आपको save()
. के रिटर्न वैल्यू का उपयोग करना होगा तरीका। उदाहरण के लिए, आपकी सेवा को इस तरह बदला जा सकता है:
@Service
public class ClaimDetailService {
...
@Transactional
public ClaimDetail saveClaimDetail(ClaimDetail claimDetail) {
JpaRepository<ClaimDetail, Long> mailAuditLogLongJpaRepository = jpaRepositoryFactory.getRepository(ClaimDetail.class);
return mailAuditLogLongJpaRepository.save(claimDetail);
}
...
}
और आपका नमूना कोड होगा:
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()
साथ ही, हालांकि सीधे आपकी समस्या से संबंधित नहीं है, आपको स्प्रिंग डेटा रिपॉजिटरी बनाने की आवश्यकता नहीं है जिस तरह से आपने इसे किया है। JPARRepository का विस्तार करते हुए बस अपना स्वयं का इंटरफ़ेस बनाएं।