java吧 关注:1,242,222贴子:12,713,702
  • 0回复贴,共1

请教一个hibernate的问题,大神帮帮忙

只看楼主收藏回复

@Override
public UserRole loadUserRloe(int uid, int rid) {
String hql="select ur from UserRole ur left join fetch ur.role r left join fetch ur.user u where u.id=? and r.id=?";
String sql="select * from t_user_role ur left join t_user u on(u.id=ur.user_id) left join t_role r on(r.id=ur.role_id) where u.id=? and r.id=?";
return (UserRole) this.getSession().createSQLQuery(sql).addEntity(UserRole.class).setParameter(0,uid).setParameter(1,rid).uniqueResult();
//return (UserRole) this.getSession().createQuery(hql).setParameter(0,uid).setParameter(1,rid).uniqueResult();
}
为什么使用hql的抓取只会发出一条sql。使用自己写的sql就会发出3条呢,怎么才能解决sql多的问题


IP属地:陕西1楼2015-10-14 21:27回复