sql >> Database >  >> RDS >> Mysql

Hoe id te krijgen na opgeslagen object in db in JPA?

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.



  1. Hoe krijg ik een ID in MSSQL in PHP?

  2. Mysqli_fetch_assoc($result), de aanwijzer gaat naar het volgende record. Is er een manier om de aanwijzer terug te zetten naar het begin van het queryresultaat?

  3. Een selectie maken met array bevat waardeclausule in psql

  4. Laravel 4 gebruikt UUID als primaire sleutel