sql >> データベース >  >> RDS >> Mysql

JPAのdbに保存されたオブジェクトの後にIDを取得するにはどうすればよいですか?

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

    また、問題に直接関係するわけではありませんが、SpringDataリポジトリを作成した方法で作成する必要はありません。 JPARepositoryを拡張する独自のインターフェイスを作成するだけです。



    1. DBが存在しない場合でも、Hibernateを使用してオンザフライでPostgreSQLデータベースを作成します

    2. サブクエリの結果でLIMITを使用することは可能ですか?

    3. 識別関係または非識別関係を決定する際の問題

    4. 2MySQLの日付から月の名前を返す関数