sql >> Databáze >  >> RDS >> Mysql

Jak získat ID po uložení objektu v db v JPA?

Specifikace JPA nezaručuje, že poskytnutý objekt entity bude po uložení aktualizován. Chcete-li získat uloženou entitu JPA, musíte použít návratovou hodnotu save() metoda. Vaši službu lze změnit například takto:

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

A váš ukázkový kód by byl:

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

Také, i když to přímo nesouvisí s vaším problémem, nemusíte vytvářet úložiště Spring Data tak, jak jste to udělali. Stačí si vytvořit své vlastní rozhraní rozšiřující JPARepository.



  1. Databáze EAV model, výpis záznamů podle vyhledávání

  2. Mysql – Jak provést vyhledávání rozlišující malá a velká písmena?

  3. Jak používat Timestamp_to_scn a Scn_to_timestamp v Oracle?

  4. Jaký je rozdíl mezi odstraněním z tabulky table_a a zkrácením tabulky table_a v MySQL?