Hibernate:如何通过Oracle包程序插入/更新/删除配置实体?

时间:2016-09-02 11:10:56

标签: java hibernate hibernate-mapping

是否有可能(如果是,如何?)映射要从表中提取的实体类,但是通过过程插入/更新/删除,而不是执行INSERT / UPDATE / {{ 1}}在这张桌子上?

实体配置是通过XML完成的,使用特定于Oracle的类/方法是可以的。

1 个答案:

答案 0 :(得分:1)

您可以映射自version 3.5以来的创建/更新/删除操作的自定义SQL。

如果要映射常规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>