关于hibernate多表联查

  最近项目需要用到是多表联查,但是我对hibernate不是太熟悉. 在网上查了很多有关hibernate的多表联查,均没有结果.所以我就自己上网下载了一本精通hibernate的书.

           里面提及到多表联查,原来hibernate联查是这样的:

  

List<CheckTimeLog> list = null;

Query query =	getSession().createQuery("FROM CheckTimeLog c left join fetch c.personMsg
 where c.personMsg.staffName  like ? and  c.checkDate  between ? and ? ")
	.setParameter(0, "%"+search+"%").setParameter(1,startDate ).setParameter(2,endDate);
		
      list = query.list();
    int i = list.get(0).getId();
	System.out.println("id:"+i);
     说明: 我的checkTimeLog 里面有个personMsg(一个表) 就是多对一的关系. checkTimeLog表中的 有个personMsgID的属性,连接到personMsg,这时,hiberbate会根据你的映射文件会自动判断. 最后返回的list,就是CheckTimeLog的对象.太好用了

你可能感兴趣的:(关于hibernate多表联查)