Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получа идентификатор след запазен обект в db в JPA?

Спецификацията на JPA не гарантира, че предоставеният обект ще бъде актуализиран след запазването му. За да получите запазения 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()

Освен това, въпреки че не е пряко свързано с вашия проблем, не е необходимо да създавате хранилища на Spring Data по начина, по който сте го направили. Просто създайте свой собствен интерфейс, разширяващ JPARepository.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql избира САМО дублиращи се записи от базата данни

  2. Docker - Стартирайте Apache на хост и контейнер за различни уебсайтове

  3. Не може да се свърже с локален MySQL сървър чрез сокет

  4. Променете тип колона от Date на DateTime по време на миграция на ROR

  5. Вземете MySql данни и ги съхранете в Javascript масив