您的当前位置:首页正文

SQL查询与命名查询

2022-10-25 来源:独旅网


Hibernate 中的原生SQL(Native SQL)查询

Hibernate3允许你使用手写的sql来完成所有的create,update,delete,和load操作(包括存储过程)

1:SQL查询是通过SQLQuery接口来控制的,它是通过调用Session.createSQLQuery()方法来获得 session=HibernateUtil.getSession();

news=session.createSQLQuery(\"select * from news_news n\")

.addEntity(News.class).list();

addEntity()方法将SQL表的实体类联系起来,并且确定查询结果集的返回值形态。

2:原生的SQL查询可能返回一个简单的标量值或者一个标量和实体的结合体

session=HibernateUtil.getSession();

max=(Long)session.createSQLQuery(\"select max(n.n_id) as maxid from

news_news n\")

.addScalar(\"maxid\.uniqueResult();

3:命名SQL查询

可以在映射文档中定义查询的名字,然后就可以象调用一个命名的HQL查询一样直接调用命名SQL查询.在这种情况下,我们不 需要调用addEntity()方法.

在po类的xml文件中命名一个sql

select * from news_news n 实现类调用:

news=session.getNamedQuery(\"sqlallnews\")

4:使用存储过程来查询

Hibernate 3引入了对存储过程查询的支持. 存储过程必须返回一个结果集

因篇幅问题不能全部显示,请点此查看更多更全内容