sql >> Databasteknik >  >> RDS >> Mysql

Hur får man id efter sparat objekt i db i JPA?

JPA-specifikationen garanterar inte att det angivna entitetsobjektet kommer att uppdateras efter att det har sparats. För att få den sparade JPA-enheten måste du använda returvärdet för save() metod. Till exempel kan din tjänst ändras på detta sätt:

@Service
public class ClaimDetailService {
    ...
    @Transactional
    public ClaimDetail saveClaimDetail(ClaimDetail claimDetail) {
        JpaRepository<ClaimDetail, Long> mailAuditLogLongJpaRepository = jpaRepositoryFactory.getRepository(ClaimDetail.class);
        return mailAuditLogLongJpaRepository.save(claimDetail);
    }
    ...
}

Och din exempelkod skulle vara:

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()

Även om det inte är direkt relaterat till ditt problem, behöver du inte skapa Spring Data-förråden som du har gjort det. Skapa bara ditt eget gränssnitt som utökar JPARepository.



  1. Hur använder man Django med äldre skrivskyddade databastabeller med sammansatta primärnycklar?

  2. Postgres Query Plan varför raduppskattning är så fel

  3. Hur ändrar jag standardschemat i sql-utvecklare?

  4. Hur man hittar data från förra veckan i MySQL