Hibernate-select new Object(Entity obj)非主外來鍵關聯物件查詢

livedba發表於2011-11-21
Hibernate-select new Object(Entity obj)非主外來鍵關聯物件查詢[@more@]

1.定義實體類

/**
* Name: net.uni.in1.model.RoleDict.java
* Version: 1.0
* Date: 2011-11-21
* Author: Administrator
*/
package net.uni.in1.model;

/**
* 處理內容: 用於多表非主外來鍵聯合查詢用的
* @version: 1.0
* @see:net.uni.in1.model.RoleDict.java
* @date:2011-11-21
* @author:孫偉
*/
public class RoleDict {

private Role role = new Role();

private String dictName;

private String code;

private Long dictUniqNo;



/**
*

Title:


*

Description:


* @param role
* @param dictName
* @param code
* @param dictUniqNo
*/
public RoleDict(Object role, String dictName, String code, Long dictUniqNo) {
super();
this.role = (Role)role;
this.dictName = dictName;
this.code = code;
this.dictUniqNo = dictUniqNo;
}

public RoleDict() {
super();
// TODO Auto-generated constructor stub
}

public String getDictName() {
return dictName;
}

public void setDictName(String dictName) {
this.dictName = dictName;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public Long getDictUniqNo() {
return dictUniqNo;
}

public void setDictUniqNo(Long dictUniqNo) {
this.dictUniqNo = dictUniqNo;
}

public Role getRole() {
return role;
}

public void setRole(Role role) {
this.role = role;
}
}
2.hql語句

String sql = "SELECT e as role,t.name as dictName,t.code as code,t.dictUniqNo as dictUniqNo FROM net.uni.in1.model.Role e,net.uni.in1.model.Dict t WHERE e.uniqNo=t.dictUniqNo";

注意:as後面的名稱要與實體類裡面的成員變數名稱型別相同

3.建立query

Query query=this.getSession().createQuery(sql).setResultTransformer(Transformers.aliasToBean(net.uni.in1.model.RoleDict.class));

RoleDict就是你需要new出來的object

最後query.list的結果就是List

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25261409/viewspace-1056434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章