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を拡張する独自のインターフェイスを作成するだけです。