|
@Test public void testSql3()
{
Session session = null; try
{
session = HibernateUtil.openSession(); /**
* 当使用连接查询查询多个对象时,可以通过addEntity("alias", XXX.class)方法来根据
* 数据库表的别名来引入多个实体类,这时如果需要将查询出来的所有的对象分别存入实体类中,
* 只需要在查询出来的对象上添加 {} 号即可,此时就会自动帮我们分类 */
List stus = (List)session.createSQLQuery("select {stu.*}, {cla.*}, {spe.*}"
+ " from t_student stu left join t_cla***oom cla on stu.rid=cla.id"
+ " left join t_special spe on spe.id=cla.sid where stu.name like ?")
.addEntity("stu", Student.class)
.addEntity("cla", Cla***oom.class)
.addEntity("spe", Special.class)
.setFirstResult(0).setMaxResults(20)
.setParameter(0, "%张%")
.list(); for(Object[] obj : stus)
{
Student stu = (Student)obj[0];
Cla***oom cla = (Cla***oom)obj[1];
Special spe = (Special)obj[2];
System.out.println(stu.getName() + ", " + cla.getName() + ", " + spe.getName());
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
HibernateUtil.close(session);
}
}
|
|
|