hibernate left关联查询返回自定义VO

需求:多表关联查询,获取每张表中需要的字段

1、创建UserAccountInfoVo实体类,设置get set 方法,字段都为小写,后面sql即使as成大写,返回结果也是小写,会造成找不到setter方法

public class UserAccountInfoVo implements Serializable {

	private static final long serialVersionUID = 4187685806810273558L;

	private int userid;
	private int orgid;
	private String username;
	private Date loginexpiredate;
	private String email;

	public UserAccountInfoVo() {
	};

	public UserAccountInfoVo(int userid, int orgid, String username, Date loginexpiredate, String email) {
		super();
		this.userid = userid;
		this.orgid = orgid;
		this.username = username;
		this.setLoginexpiredate(loginexpiredate);
		this.email = email;
	}

	public int getUserid() {
		return userid;
	}

	public void setUserid(int userid) {
		this.userid = userid;
	}

	public int getOrgid() {
		return orgid;
	}

	public void setOrgid(int orgid) {
		this.orgid = orgid;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}


	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public Date getLoginexpiredate() {
		return loginexpiredate;
	}

	public void setLoginexpiredate(Date loginexpiredate) {
		this.loginexpiredate = loginexpiredate;
	}

}

2、通过ResultTransformer这个类 AliasToBean,通过sql的查询,会返回数组,然后 hibernate根据数据表的映射,自动帮我们来set对应的字段属性,查询的值与设置的vo对应

String sql = "select u.id as userid,u.organizationid as orgid,u.lastname as username,o.login_expire_date as loginExpireDate,u.email from \""
					+ userTable + "\" u ,\"" + organizationTable
					+ "\" o where u.organizationid = o.id and o.type <> 'Free'";
			Query setResultTransformer = session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(UserAccountInfoVo.class));
			List<UserAccountInfoVo> UserAccountInfoList = setResultTransformer.list();

参考:https://blog.csdn.net/woshixuye/article/details/7289286

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值