【mysql – 将SQL查询转换为Hibernate查询】教程文章相关的互联网学习教程文章

hibernate的几种纯sql的查询方式

几种hibernate的纯SQL查询方式,查询和表无映射关系的pojo实体和表有映射关系的实体......1、getSession().createSQLQuery(sql).query.addScalar("productId", StandardBasicTypes.STRING)........可以直接返回pojo(非映射的实体)2、getSession().createQuery("select new com.eastelsoft.Product(productId、serviceId...) from TBillAcctItem ").list().....可以直接返回pojo(非映射的实体)3、getSession().createSQLQuery(...

笔记:Hibernate SQL 查询

Hibernate 支持使用原生的SQL查询,使用原生SQL查询可以利用某些数据库特性,原生SQL查询也支持将SQL语句放在配置文件中配置,从而提高程序的解耦,命名SQL查询还可以用于调用存储过程。 SQL查询是通过SQLQuery接口来表示的,SQLQuery接口是Query接口的子接口,完全可以使用Query接口的方法,SQLQuery增加了二个重载方法 addEntity():将查询到的记录与特定的实体关联 addScalar():江查询的记录关联标量值 执行SQL的步骤如下: 获取...

Hibernate HQL和原生SQL查询的一点区别【代码】

1.createSQLQuery  1.1默认查询的结果为BigDecimal  1.2通过addScalar("CGD_ID", StandardBasicTypes.LONG)可以将结果直接转为Long     StringBuffer sb = new StringBuffer();sb.append("select g.CGD_ID from em_circle_apply_info a join em_circle_group_def g on a.CAI_CGD_ID = g.CGD_ID ");if (size != null) {sb.append(" where rownum < " + (size+1));}sb.append(" group by a.CAI_CGD_ID order by count(a.CAI...

Hibernate原生SQL查询多表关联,SQL语句要注意的问题

Hibernate原生SQL查询多表关联,SQL语句要注意的问题@for&ever 2009-9-4 系统环境:MySQL5.1Hibernate3.3 有如下的假定:实体类 Question 和 Answer分别对应数据表 question 和answer。并且表 question 和answer 的字段大部分都一样,字段数目也一样。 执行如下的操作:1>使用hibernate 使用原生SQL查询,Query q = session.createSQLQuery(sql).addEntity(Question.class).addEntity(Answer.class);createSQLQuery执行的sql是如下...

hibernate sql查询【代码】

如果你跟我一样比较熟悉SQL,同时不想学习一门新的语言。那么在hibernate中使用Native SQL 查询也是一种不错的方式。 一方面,Native SQL在效率方面有天生的优势; 另一方面,SQL是数据库操作的一种标准,我们与程序、数据库关联很小。如果将来不用hibernate,而是用别的ORM,sql一样好用。 但尽量用标准SQL,而不要用过多方言SQL。 标量查询 最基本的 SQL 查询就是获得一个标量(数值)的列表。sess.createSQLQuery("SELECT ...

hibernate sql查询转化为实体类

,而且必须是所有的属性 3,sql语句 String sql="select {s.*},{st.*} from grade s,student st where s.id=st.classid" SQLQuery query=session.createSQLQuery(sql) ; query.addEntity("s", Grade.class); query.addEntity("st", Student.class); 利用这样的查询得到的是一个object[]数组,object[0]就是班级实体类,object[1]就是学生实体类 可以用addScalar(String arg,Type type)方法定义要返回的字段类型,如 s.createSQLQu...

关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)【代码】【图】

然后我们开始写这个数据库操作的dao,代码如下:Java代码 String sql = "select u.userName as userName ,p.title as title ,p.addTime as addTime from user as u,post as p where u.id=p.userId" Query q = factory.getCurrentSession().createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(PostVO.class));红字部分必须跟PostVO中的属性一直,这样就可以返回一个针对PostVO的一个集合。 其实大家可以看下hiber...

使用hibernate原生sql查询,结果集全为1的问题解决【代码】【图】

<Map<Object, Object>> listTest = this.getService().getListBySql(sqlTest);for (Map<Object, Object> m : listTest) {for (Object k : m.keySet()) {System.out.println(k + " : " + m.get(k));}}执行代码输出结果为:但其sql语句在数据库中执行结果为:其中this.getService().getListBySql()方法是封装了hibernate原生sql查询List list = (List) this.getHibernateTemplate().execute(new HibernateCallback() {public Object ...

Hibernate用Sql查询封装到实体类

@Override2 @SuppressWarnings("unchecked")3 public <T> Pagination<T> getPageResultObjectParamsBySql(Class<T> clazz,4 String hql, int pageNo, int pageSize,5 Object[] param)6 throws RuntimeException {7 List<T> list = null;8 Pagination<T> page;9 try { 10 Session session = getSession(); 11 log.info("[执行HQL:{}]", hql); 1...

Hibernate SQL查询 addScalar()或addEntity()【代码】

它们都将返回一个Object数组组成的List,数组每个元素都是person_inf表的一个字段值。Hibernate会使用ResultSetMetadata来判定返回的标量值的实际顺序和类型。 但是在JDBC中过多的使用ResultSetMetadata会降低程序的性能。所以为了过多的避免使用ResultSetMetadata或者为了指定更加明确的返回值类型,我们可以使用addScalar()方法: session.createSQLQuery("select * from person_inf") .addScalar("name",StandardBas...

Hibernate 的原生 SQL 查询【代码】

* from person_inf").list(); session.createSQLQuery("select id,name,age from person_inf").list(); 它们都将返回一个Object数组组成的List,数组每个元素都是person_inf表的一个字段值。Hibernate会使用ResultSetMetadata来判定返回的标量值的实际顺序和类型。 但是在JDBC中过多的使用ResultSetMetadata会降低程序的性能。所以为了过多的避免使用ResultSetMetadata或者为了指定更加明确的返回值类型,我们可以使用addS...

Hibernate HQL和原生SQL查询的一点区别【代码】

StringBuffer();sb.append("select g.CGD_ID from em_circle_apply_info a join em_circle_group_def g on a.CAI_CGD_ID = g.CGD_ID ");if (size != null) {sb.append(" where rownum < " + (size+1));}sb.append(" group by a.CAI_CGD_ID order by count(a.CAI_CGD_ID) desc ");Query query = this.getSession().createSQLQuery(sb.toString()).addScalar("CGD_ID", StandardBasicTypes.LONG);2.createQuery2.1默认查询结果为Long...

笔记:Hibernate SQL 查询

SQL查询是通过SQLQuery接口来表示的,SQLQuery接口是Query接口的子接口,完全可以使用Query接口的方法,SQLQuery增加了二个重载方法 addEntity():将查询到的记录与特定的实体关联 addScalar():江查询的记录关联标量值 执行SQL的步骤如下: 获取Hibernate Session对象 编写SQL语句 创建SQLQuery对象,调用Session的createSQLQuery方法创建 调用SQLQuery对象的 addScalar 或者 addEntity 方法将选出的结果与变量值或实体进行关联 如...

Hibernate 函数 ,子查询 和原生SQL查询

聚合函数:count(),avg(),sum(),min(),max() 例:(1)查询Dept表中的所有的记录条数。 String hql=" select count(*) from Dept "; Long count=(Long)session.createQuery(hql).uniqueResult(); 当不确定返回的是什么类型的时候可以根据:变量名.getClass()方法得到类型 例如:count.getClass() 返回的是:java.lang.Long (2)查询所有员工的工资总和。 String hql="select sum(salary) from Emp"; Do...

Hibernate原生sql的查询,返回结果设置到DTO

(RTDataAttrDto.class)); Hibernate原生sql的查询,返回结果设置到DTO标签:creates factor current bean hiberna bsp res etc cto 本文系统来源:http://www.cnblogs.com/lj821022/p/6606997.html