`

Hibernate SQLquery.addEntity

 
阅读更多

获取多个实体关联查询,封闭到对象

一、Hibernate Query查询部分属性

select new com.golf.back.dto.video.VideFavourDetailDto(v.id, v.thumb, v.videoName, v.videoUrl, v.orgUrl, v.orgUrlSmall, vc.catName, vc.parentId, v.summary, v.content, v.price,v.isFree, v.lookFront, vf.createTime) from VideoFavour vf,Video v ,VideoCat vc where vf.videoId=v.id and v.catId=vc.id 

 VideFavourDetailDto类添加相同参数类型及个数的实例化对象;

二、多表查询,返回多个实体

StringBuffer sql = new StringBuffer("select {vpl.*}, {v.*}, {vc.*} from zg_video_playlog vpl ");
sql.append("left join zg_video v on vpl.video_id=v.id ");
sql.append("left join zg_video_cat vc  on vc.id=v.cat_id ");
sql.append("group by vpl.video_id ");
sql.append("order by vpl.id desc");
Query query = super.getSession().createSQLQuery(sql.toString())
					.addEntity( "vpl" , VideoPlayLog.class )
					.addEntity( "v" , Video.class )
					.addEntity("vc", VideoCat.class);
query.setFirstResult(startPos);
query.setMaxResults(pageSize);
List<Object[]> list = query.list();  
List<VideFavourDetailDto> vdList = new ArrayList<VideFavourDetailDto>();
if(null!=list && list.size()>0){
	VideFavourDetailDto dto = null;
	VideoPlayLog vpl = null;
	Video v = null;
	VideoCat vc = null;
	for(int i=0; i<list.size(); i++){
		vpl = (VideoPlayLog)list.get(i)[0];
		v = (Video)list.get(i)[1];
		vc = (VideoCat)list.get(i)[2];
		dto = new VideFavourDetailDto(vpl.getId(), v.getId(), v.getThumb(), v.getVideoName(), 
				v.getVideoUrl(), v.getOrgUrl() , v.getOrgUrlSmall(), vc.getCatName(), 
				vc.getParentId(), v.getSummary(), v.getContent(), v.getPrice(), 
				v.getIsFree(), v.getLookFront(), vpl.getCreateTime(), vpl.getPlayTimes());
		vdList.add(dto);
	}
}

 特别注意: 这块有些问题,明明应该返回Clazz的List的,但确返回包含Clazz和Student的Object的List, 使用场合:基于对象的查询,复杂查询

分享到:
评论

相关推荐

    Hibernate+本地SQL查询SQLQuery.pdf

    《Hibernate中的本地SQL查询SQLQuery》 在Java的持久化框架Hibernate中,有时我们需要使用原生的SQL查询来实现特定的数据库操作,这时就需要利用到SQLQuery接口。本篇文章将详细解析如何使用Hibernate的SQLQuery来...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    SQLQuery query = session.createSQLQuery(hql); query.setParameter("offset", (para.getCurrentPage()-1)*para.getSizePage()); query.setParameter("pageSize", para.getSizePage()); List&lt;Game&gt; games = query....

    在Java的Hibernate框架中使用SQL语句的简单介绍

    首先,Hibernate支持使用HQL(Hibernate Query Language),这是一种面向对象的查询语言,类似于SQL。然而,有时我们仍需要直接使用SQL语句,以便利用其灵活性和效率。在Hibernate中,你可以通过`Session`对象的`...

    Native SQL查询 (使用SQLQuery).doc

    在 Hibernate 中,使用 SQLQuery 可以执行 Native SQL 查询,控制查询的执行是通过 SQLQuery 接口进行的,通过执行 Session.createSQLQuery() 获取这个接口。下面将详细介绍如何使用这个 API 进行查询。 标量查询...

    Hibernate+本地SQL查询SQLQuery宣贯.pdf

    在某些情况下,开发者可能需要使用原生SQL查询来执行特定的数据库操作,这时就可以利用Hibernate的SQLQuery功能。本文将详细讲解如何使用Hibernate的SQLQuery进行本地SQL查询。 首先,创建SQLQuery实例是通过...

    hibernate执行原生sql语句

    在上面的代码中,我们使用 `Session.createSQLQuery()` 方法创建了一个 `SQLQuery` 对象,然后使用 `addEntity()` 方法指定了查询结果的实体类型,最后使用 `list()` 方法执行查询并获取结果。 使用 ...

    hibernate将本地SQL查询结果封装成对象

    SQLQuery query = session.createSQLQuery(sql); ``` 如果查询返回的是单个对象,我们可以使用`addEntity()`方法指定结果应映射到的实体类: ```java query.addEntity(MyEntity.class); MyEntity result = ...

    Native-SQL查询 (1).ppt

    Hibernate提供`Session`接口的`createSQLQuery()`方法来创建一个`SQLQuery`对象,用于执行原生的SQL查询。例如,以下代码展示了如何通过Native SQL获取`guestbook`表的所有记录,并打印结果: ```java ...

    Hibernate_Query查询所有数据

    sqlQuery.addEntity(YourEntityName.class); List&lt;YourEntityName&gt; allData = sqlQuery.list(); transaction.commit(); session.close(); ``` 在这里,你需要将`your_table_name`替换为实际的数据库表名,并...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    首先,我们需要理解Hibernate中的`SQLQuery`接口,这是执行原生SQL查询的主要入口。通过`Session`对象的`createSQLQuery`方法,我们可以创建一个`SQLQuery`实例,然后设置SQL语句: ```java Session session = ...

    关于hibernate 的createQuery和createSqlQuery 的区别

    List&lt;UserInfo&gt; list = query.createSqlQuery(sql).addEntity(UserInfo.class).list(); 2. 修改操作:使用 createSqlQuery 方法可以执行修改操作,例如: String sql = "update user_info set user_name = 'aaa'";...

    Hibernate查询语言.doc

    Hibernate也允许使用原生SQL查询,通过`createSQLQuery()`方法创建`SQLQuery`对象,然后可以使用`addEntity()`或`setResultTransformer()`将结果转换为对象。 总的来说,Hibernate的查询语言提供了一套灵活且强大...

    hibernate将本地SQL查询结果封装成对象(最终).zip

    - `SQLQuery`对象:通过`Session.createSQLQuery()`方法创建,用于执行自定义SQL查询。 - 结果集转换:`addEntity()`方法用于指定查询结果应被映射到哪个实体类,`list()`或`scroll()`方法执行查询并返回结果集,...

    hibernate 执行原生sql的几种方式

    SQLQuery query = session.createSQLQuery("SELECT * FROM User"); List results = query.list(); ``` 这种方法可以自由地编写任何有效的SQL,但需要手动映射查询结果到Java对象。如果返回结果需要映射到实体类...

    hibernate的分页

    SQLQuery query = session.createSQLQuery(sql) .addEntity(User.class) .setParameter("startIndex", 0) // 起始位置 .setParameter("pageSize", 10); // 每页数量 List&lt;User&gt; users = query.list(); ``` 五、...

    Hibernate中的查询:HQL、Criteria、原生SQl

    SQLQuery query = session.createSQLQuery(sql); query.addEntity(User.class); List&lt;User&gt; users = query.list(); ``` 原生SQL查询可以返回结果集、单个值或自定义的结果类型。但需要注意的是,这种方式可能会丢失...

    hibernate 的createSQLQuery的几种用法

    一、简单的 SQLQuery 在最简单的情况下,我们可以使用 createSQLQuery 方法来执行一个简单的 SQL 查询,例如: ```java List cats = sess.createSQLQuery("select * from cats").addEntity(Cat.class).list(); ``` ...

    spring hibernate执行存储过程的例子

    SQLQuery query = session.createSQLQuery(sql).addEntity(YourResultEntity.class); query.setParameter(1, param1); query.setParameter(2, param2); List&lt;YourResultEntity&gt; result = query.list(); for ...

    hibernateCriteria的使用.docx

    SQLQuery sq = session.createSQLQuery(sql); sq.addEntity(Student.class); List&lt;Student&gt; list = sq.list(); ``` 这段代码将执行指定的SQL查询,并将结果映射到`Student`实体。 6. Criteria API的其他方法 ...

Global site tag (gtag.js) - Google Analytics