私はこの後にSpring Data JPAを使用してストアドプロシージャを呼び出すためにexampleを呼び出しています。アイデアは、エンティティを作成し、このような名前付きストアドプロシージャを定義することです。Springデータでストアドプロシージャを呼び出すときに配列を渡す方法JPA
@Entity
@Table(name = "TRFTABLE")
@NamedStoredProcedureQuery(
name = "processFmTrf",
procedureName = "FM_TRF_UTIL.process_fm_trf",
parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "i_trf_list", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "i_source_system", type = String.class)
}
)
public class TrfTable implements Serializable{
}
プリミティブ型の入力パラメータではかなり簡単です。 String.class。しかし、私の格納されたprocの入力の1つは配列です。私は次のようにCallableStatementのを使用してストアドプロシージャを呼び出すことで、配列を処理する方法を知っている:
Connection con = getConnection();
OracleConnection oraCon = con.unwrap(OracleConnection.class);
// fileArray predefined.
Array array = oraCon.createARRAY("VARCHAR2_TAB_T", fileArray);
CallableStatement stmt = con.prepareCall("{call FILE_TRANSFER_AUDIT_UTIL.update_file_queue_id(?,?,?,?,?,?)}");
stmt.setArray(1, array);
DB接続は、ストアドプロシージャへの配列を渡すために確立されなければならないように見えます。どのように私はエンティティクラスのためのNamedStoredProcedureを使用してこれを達成するのですか?