現在、複合キーをプライマリキーとして持つCredentialオブジェクトのJPARepositoryインターフェイスを使用して、persistを実行しようとしています。 レポは次のとおりです。ブートJPAリポジトリsaveAndFlush複合キー
@Transactional public interface CredentialRepository extends JpaRepository<Credential,CredentialPK> {}
credentialPKは次のとおりです。
@Embeddable
public class CredentialPK implements Serializable {
@Column(name = "CREDENTIAL_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer credentialID;
@Column(name = "CREDENTIAL_TYPE_ID")
private String credentialTypeID;
public CredentialPK() {
}
//getters and setters;
} `
資格:サービスクラスで @Entity @Table(name = "TBL_CREDENTIALS") public class Credential { @EmbeddedId private CredentialPK credentialPK; //getters and setters }
、私が実行しようとしていますアプリケーションによって提供される資格証明タイプを使用した保存操作に。この例では、資格情報のタイプが「一時的」であるとします。次のように 証明書を作成し、永続化するためのコードがある:
Credential credential = new Credential();
CredentialPK pk = new CredentialPK();
pk.setCredentialTypeID("temporary");
credential.setCredentialPK(pk);
Credential temporaryCredential = credentialRepository.saveAndFlush(credential);
temporaryCredential.getCredentialPK().getCredentialID(); // returns null, even when repository is flushed
`
IはtemporaryCredentialことを必要credentialIDが新たに挿入された信用証明書のID移入有します。しかし、私が取得しているcredentialIDはnullです。私は保存して両方saveAndFlush方法で、CrudRepository APIとリポジトリの実装のためのJpaRepository APIの両方を使用してみました。資格情報の主キーがコンポジットではないが、従来のコードのためにこの変更を行うことはできません。
提案がありますか?別の答えから
ありがとうございました!うまくいけば、今後のブートリリースでこれが可能になることを願っています。 –