Java中使用hql,sql查询--多表查询后的新实体构建方法

SQL> select r.roleid,r.rolename from dsp_role r,dsp_userinfo u,dsp_user_role ur where r.roleid = ur.uroleid and ur.uuserid = u.userid and u.userid = 1 order by r.roleid asc;
 
    ROLEID ROLENAME
---------- ----------------------------------------
         1 系统管理员
         3 董事长




这是多表sql查出来的结果。。。但是我们需要把查出来的数据放在对象当中方便读取到页面当中。这样我们可以构建一个bean..如我的:
package com.tianjun.sysMgr.beans;


public class sqlDataRole {

private int roleid;
private String rolename;


public int getRoleid() {
return roleid;
}
public void setRoleid(int roleid) {
this.roleid = roleid;
}
public String getRolename() {
return rolename;
}
public void setRolename(String rolename) {
this.rolename = rolename;
}
@Override
public String toString() {
return "sqlDataRole [roleid=" + roleid + ", rolename=" + rolename + "]";
}
public sqlDataRole(int roleid, String rolename) {
super();
this.roleid = roleid;
this.rolename = rolename;
}






}




然后查询的到那里这样写。。。
public List<sqlDataRole> findUsersAllRole(int userid) {
try{
String sql = "select new com.tianjun.sysMgr.beans.sqlDataRole(r.roleid,r.rolename) from DspRole r,DspUserInfo u,DspUserRole ur where r.roleid = ur.dspRole.roleid and ur.dspUserinfo.userid = u.userid and u.userid ="+userid+"order by r.roleid asc";
List<sqlDataRole> list = dspRoleDao.findBySql(sql);
if(list.size()>0){

return list;
}


}catch(Exception e){

e.printStackTrace();
}
return null;
}


关键是那个bean要写成这样  不然查询的时候找不到的。com.tianjun.sysMgr.beans.sqlDataRole
 

转载于:https://my.oschina.net/lijingjun860/blog/88288

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值