休眠和存储过程

时间:2011-03-23 13:19:48

标签: java hibernate stored-procedures

我是hibernate的初学者,直到这个日期我都没有遇到过存储过程。

有人可以告诉我如何在Hibernate中执行以下操作, 此存储过程返回三个字段

date, balance, name_of_person

执行程序'dfd''fdf''34'

  1. 我是否需要以bean具有以下字段的方式创建bean: 日期,余额,name_of_person

  2. 我是否需要创建属性文件?

  3. 是否可以使用Criteria在hibernate中执行过程?

  4. 如果我是NativeQuery是唯一的选项,那么如何创建属性文件,因为我没有这样的表作为程序的结果

  5. 是否可以单独使用本机查询,不使用任何bean或属性文件,并打印结果

1 个答案:

答案 0 :(得分:7)

这是一个简单的例子: -

Hibernate映射文件

<hibernate-mapping>
    <sql-query name="mySp">
        <return-scalar column="date" type="date" />
        <return-scalar column="balance" type="long" />
        <return-scalar column="name_of_person" type="string" />

        { call get_balance_sp :name }
    </sql-query>
</hibernate-mapping>

<强>代码

List<MyBean> list = sessionFactory.getCurrentSession()
                            .getNamedQuery("mySp")
                            .setParameter("name", name)
                            .setResultTransformer(Transformers.aliasToBean(MyBean.class))
                            .list();

Bean类

此bean保存存储过程的结果。字段名称必须与Hibernate映射文件中的列名匹配。

public class MyBean  {
    private Date date;
    private Long balance;
    private String name_of_person;

    // getters and setters
}