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
news=session.getNamedQuery(\"sqlallnews\")
4:使用存储过程来查询
Hibernate 3引入了对存储过程查询的支持. 存储过程必须返回一个结果集
因篇幅问题不能全部显示,请点此查看更多更全内容