0
正しいオブジェクトをロードできませんでした。JPA単一テーブル継承は、私はこれらの2つのクラスを持っている
@Test
public void testGetItemPersonaFisica() {
EntityManager entityManager = factory.createEntityManager();
entityManager.getTransaction().begin();
Cliente.ClienteId clienteId = new Cliente.ClienteId(codiceAbi, btUtenteProfilo);
Cliente cliente = entityManager.find(Cliente.class, clienteId);
assertNotNull(cliente);
System.out.println(cliente);
System.out.println(cliente.getTipologiaCliente());
}
最初のテスト:COD_TIPOCLIENTE = PFでのそのレコードの最初のテスト:すべてがうまくいきます。 しかし、私は変更されたときに、クエリがJPAからトリガー以来、私はエラーを得たCOD_TIPOCLIENTE = PMと値は次のとおりです。
SELECT * FROM S_MC_CC_CLIENTI WHERE (((COD_ABI = ?) AND (ANAG_UTENTE = ?)) AND (COD_TIPOCLIENTE = ?))
bind => [01025, 71576493, PF]
キーがあるので、生成されたクエリが間違っているようだ[01025、71576493] PFながら、 discriminatorカラムの値にする必要があります。
どのように問題を解決するか考えてみましょうか?
種類は、私は問題を発見 マッシモ
受信しているエラーを入力してください。 – Marthin
エラーは論理です。 Cliente cliente = entityManager.find(Cliente.class、clienteId)は、where条件が入れられ、スーパークラスでハードコードされた値を持つdiscriminator列を持つため、正しい要素を返しません。 AND(COD_TIPOCLIENTE =?)= PF –