1

我想问一下 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 的。

我的问题是:我能以某种方式预测使用注释时的预期顺序吗?

4

0 回答 0