Hibernate:如何通过 Oracle 包程序将实体配置为 inserted/updated/deleted?
Hibernate: How configure entity to be inserted/updated/deleted through Oracle package procedures?
是否有可能(如果是,如何?)映射实体 class 从 table 获取,但是 inserted/updated/deleted 通过过程,而不是 INSERT
/UPDATE
/DELETE
这个 table?
实体配置通过 XML 完成,使用特定于 Oracle 的 classes/methods 即可。
您可以为 create/update/delete 操作映射自定义 SQL,因为 version 3.5。
如果要通过常规SQL语句进行映射,只需在<sql-insert>
、<sql-update>
、<sql-delete>
元素内正常写入SQL即可。
使用存储过程时,需要将其标记为可调用语句,并使用调用语法。请注意删除和更新所需的输出参数,返回删除的行数。
<class name="Person">
<id name="id">
<generator class="increment"/>
</id>
<property name="name" not-null="true"/>
<sql-insert callable="true">{call createPerson (?, ?)}</sql-insert>
<sql-delete callable="true">{? = call deletePerson (?)}</sql-delete>
<sql-update callable="true">{? = call updatePerson (?, ?)}</sql-update>
</class>
是否有可能(如果是,如何?)映射实体 class 从 table 获取,但是 inserted/updated/deleted 通过过程,而不是 INSERT
/UPDATE
/DELETE
这个 table?
实体配置通过 XML 完成,使用特定于 Oracle 的 classes/methods 即可。
您可以为 create/update/delete 操作映射自定义 SQL,因为 version 3.5。
如果要通过常规SQL语句进行映射,只需在<sql-insert>
、<sql-update>
、<sql-delete>
元素内正常写入SQL即可。
使用存储过程时,需要将其标记为可调用语句,并使用调用语法。请注意删除和更新所需的输出参数,返回删除的行数。
<class name="Person">
<id name="id">
<generator class="increment"/>
</id>
<property name="name" not-null="true"/>
<sql-insert callable="true">{call createPerson (?, ?)}</sql-insert>
<sql-delete callable="true">{? = call deletePerson (?)}</sql-delete>
<sql-update callable="true">{? = call updatePerson (?, ?)}</sql-update>
</class>