Hibernate が自動的に生成された挿入/更新ステートメントで使用するパラメーターの順序についてお尋ねしたいと思います。
最初に Hibernate のリファレンスを引用させてください。
位置パラメータの順序は、Hibernate が期待する順序と同じでなければならないため、現在重要です。
org.hibernate.persister.entity レベルのデバッグ ログを有効にすることで、予想される順序を確認できます。このレベルを有効にすると、Hibernate はエンティティの作成、更新、削除などに使用される静的 SQL を出力します。(予想されるシーケンスを確認するには、カスタム SQL をマッピング ファイルに含めないでください。これは、Hibernate によって生成された静的 SQL をオーバーライドします。)
XML マッピングを使用するときのパラメーターの順序は、XML ファイル内のプロパティの順序とまったく同じであることが (簡単なテストを行って) わかりました。
例:
<many-to-one name="rezerwacja" class="model_mapowanie_xml.Trezerwacja" fetch="select">
<column name="IdRezerwacja" not-null="true" />
</many-to-one>
<property name="kwota" type="big_decimal">
<column name="Kwota" scale="4" not-null="true" />
</property>
<property name="data" type="timestamp">
<column name="Data" length="19" not-null="true" />
</property>
HotelDB.TPlatnosc (IdRezerwacja, Kwota, Data) への挿入を生成します。
xml で Kwota と Data の位置を入れ替えると、insert はHotelDB.TPlatnosc (IdRezerwacja, Data, Kwota) に挿入されます。それはXML用です。
私の質問は、アノテーションを使用するときにどのような順序が期待されるかをどうにか予測できますか?