@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多的问题
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多的问题
![](http://g.hiphotos.bdimg.com/album/s%3D1000%3Bq%3D90/sign=db1cd7ca00087bf479ec53e9c2e36c5d/dc54564e9258d10975574133d358ccbf6d814dff.jpg?v=tbs)