次のように、NHibernateの.hbm.xmlマッピングファイルにコマンドとしてOracle11gストアドプロシージャをマッピングしています。
<class name="Person" table="PERSONS">
<id name="Id" column="COD_PERSON" />
<property name="Name" column="NAME" />
<property name="AuditField1" column="AUDITFIELD1" />
<property name="AuditField2" column="AUDITFIELD2" />
<property name="AuditField3" column="AUDITFIELD3" />
<sql-insert>exec PKG_PERSONS.insert_sp ?,?</sql-insert>
</class>
これはストアドプロシージャです。
create or replace package body PKG_PERSONS is
procedure insert_sp(pcod_person persons.cod_person%type,
pname persons.name%type) is
begin
insert into persons(cod_person, name) values(pcod_person, pname);
end;
このマッピングから、「Id」および「Name」プロパティがパラメーターとして送信されることを期待していますが、確かに、これは発生していません。Oracleからこのエラーが発生します:ORA-01036:不正な変数名/番号。NHibernateはコンソールウィンドウにいくつかのログを表示し、NHはストアドプロシージャを呼び出すために、AuditFieldsを含むすべてのプロパティをマップしようとしているようです。
多分これはソースのエラーですか?
これは予想される動作ですか?
NH3 / Oracleでパラメータとして送信するプロパティを特定することは可能ですか?
前もって感謝します。