JPA から Sybase ストアド プロシージャを呼び出し、その値を Transient オブジェクトに返す必要があります。このオブジェクトは、別の永続オブジェクトに入力するために使用されます。
これは私がやったことです:
@Entity
public class CBSCustomer {
String cpr;
<--snipped-->
@Id
@Transient
public String getCpr() {
return cpr;
}
<---snipped-->
}
Bean で SP を呼び出します。
List<CBSCustomer> fetchedCustomerList = getEmPhoenix().createNativeQuery("{call sp_name(?)}", CBSCustomer.class).setParameter(1, cprInput).getResultList();
if (fetchedCustomerList.size() > 0) {
CBSCustomer cbsCustomer = ((CBSCustomer)fetchedCustomerList.get(0));
setDisabled(true);
}
残念ながら、列名に関するエラー、つまり「x の列名が無効です」というエラーが表示され続けます。ここで、x は CBSCustomer のフィールドのプレースホルダーです。