sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man id efter gemt objekt i db i JPA?

JPA-specifikationen garanterer ikke, at det angivne enhedsobjekt vil blive opdateret efter at have gemt det. For at få den gemte JPA-entitet skal du bruge returværdien af ​​save() metode. For eksempel kan din tjeneste ændres på denne måde:

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

Og din eksempelkode ville være:

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

Også selvom det ikke er direkte relateret til dit problem, behøver du ikke oprette Spring Data-lagrene, som du har gjort det. Bare opret din egen grænseflade, der udvider JPARepository.



  1. Sådan indsætter du en lang streng i CLOB-datatypen i Oracle

  2. Fjern enkelte citater fra where_in i codeigniter

  3. MYSQL-syntaks, der ikke evalueres, er ikke lig med tilstedeværelsen af ​​NULL

  4. hvordan man forbinder værdi fra en anden tabel med samme betingelsesværdi