当前位置:首页>开发>正文

Hibernate怎样用HQL语句查询 Hibernate的HQL查询、多表查询

2023-04-24 21:09:19 互联网 未知 开发

 Hibernate怎样用HQL语句查询 Hibernate的HQL查询、多表查询

Hibernate怎样用HQL语句查询?

1)建立实体-数据库表的映射文件 *.hbm.xml。
2)Session session =sessionFactory.openSession()
String hql = "from build"
Listlist = (List)session.createQuery(hql).list() HQL语句操作的是po类,也就是实体类。hql通过映射文件,将类名和表名、类属性和表字段一一对应起来。

Hibernate的HQL查询、多表查询

备忘中建议一个评论的Set集合 在备忘bean对象里的评论Set集合上写Casecade.Enger(级联查询)在jsp 页面中可以用 jstl 表达式 或struts2的标签实现 祝你好运

hibernate的hql多表查询

this.getHibernateTemplate().find("from 用户表对应的pojo对象user,角色表对应的pojo对象role,部门表对应的pojo对象depart where user.name=akk and role.name=bbb and depart.name=keng and user.departId=depart.id and user.roleId = role.id")

hibernate hql语句查询问题

select a.员工姓名,count(b.年假单号) 年假总计(张), sum(b.使用状态) 已使用(张), sum(case when b.使用状态=0 then 1 else 0 end) 未使用(张) from 员工表 a inner join 年假表 b on a.员工id=b.员工id group by a.员工姓名

javaweb hibernate hql语句查询

用hql构造query对象 ,query可以设置setfirstresult和maxresult,不要用hibernatetemplate ,hql不用写rownum条件,直接from 对象class名 where 条件即可
String hql = " from job where a= " value;
query q = session.createquery(hql);
q.setfirstresult 0
q.setmaxresult 1
List result= q.list();

Hibernate数据查询

前两种性质是一样的,你看下源码就知道了:
Spring的org.springframework.orm.hibernate3.HibernateTemplate中的方法:
public List find(String queryString) throws DataAccessException {
return find(queryString, (Object[]) null)
}

public List find(final String queryString, final Object... values) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<List>() {
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString)
prepareQuery(queryObject)
if (values != null) {
for (int i = 0 i < values.length i ) {
queryObject.setParameter(i, values[i])
}
}
return queryObject.list()
}
})
}

其实org.hibernate.impl.SessionImple里还有一种find(String hql)的。

至于Criteria,其实就是方便面向对象的编码者而设计的,让编码者省去考虑面向关系的逻辑,其实质是一样的。你可以查下源码吧。

最新文章