Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać id po zapisanym obiekcie w db w JPA?

Specyfikacja JPA nie gwarantuje, że podany obiekt encji zostanie zaktualizowany po zapisaniu. Aby uzyskać zapisaną encję JPA, musisz użyć wartości zwracanej przez save() metoda. Na przykład Twoja usługa może zostać zmieniona w ten sposób:

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

Twój przykładowy kod to:

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

Ponadto, chociaż nie jest to bezpośrednio związane z Twoim problemem, nie musisz tworzyć repozytoriów Spring Data w taki sposób, w jaki to zrobiłeś. Po prostu stwórz swój własny interfejs rozszerzający 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. Błąd zapytania SQL LIKE — błąd krytyczny w przygotowanej instrukcji

  2. Uzyskaj STARĄ wartość w wyzwalaczu MySQL po oświadczeniu o aktualizacji

  3. jak uzyskać wszystkie wyniki krotki mysql i przekonwertować na json

  4. Pozyskiwanie wszystkich użytkowników z wyjątkiem administratorów w relacji wiele-do-wielu

  5. Najlepszy sposób na przechowywanie nazwy kategorii z php w tabeli mysql