public List search(Integer userId) {
Query query = super
.getSession()
.createSQLQuery(
"SELECT a.*, c.region_name AS country_name, p.region_name AS province, ct.region_name AS city_name, d.region_name AS district_name "
+ " from `ecs_user_address` as a LEFT JOIN `ecs_region` AS c ON c.region_id = a.country LEFT JOIN `ecs_region` AS p ON p.region_id = a.province"
+ " LEFT JOIN `ecs_region` AS ct ON ct.region_id = a.city LEFT JOIN `ecs_region` AS d ON d.region_id = a.district WHERE user_id="
+ userId); return query.list();
}
Query query = super
.getSession()
.createSQLQuery(
"SELECT a.*, c.region_name AS country_name, p.region_name AS province, ct.region_name AS city_name, d.region_name AS district_name "
+ " from `ecs_user_address` as a LEFT JOIN `ecs_region` AS c ON c.region_id = a.country LEFT JOIN `ecs_region` AS p ON p.region_id = a.province"
+ " LEFT JOIN `ecs_region` AS ct ON ct.region_id = a.city LEFT JOIN `ecs_region` AS d ON d.region_id = a.district WHERE user_id="
+ userId); return query.list();
}
address_id address_name user_id consignee email country province
1 1 刘先生 [email protected] 1 2city district address counttry_name province city_name
52 502 海信大厦 中国 北京 北京
这是这个SQL查询语句 结果就是这个 请问我怎么能把 这个列的 counttry_name province city_name 值 循环出来两个表 两个类 没有关联
private Short parentId;
private String regionName;
private Byte regionType;
private Short agencyId;//UserAddress类 private Integer addressId;
private String addressName;
private Integer userId;
private String consignee;
private String email;
private Short country;
private Short province;
private Short city;
private Short district;
private String address;
private String zipcode;
private String tel;
private String mobile;
private String signBuilding;
private String bestTime;
String sql = "SELECT RELATION_ID as relationId, COUNT(*) AS cut FROM CAR_INFO c WHERE (1=1) "
+ " GROUP BY RELATION_ID";
int sumType = 0;
SQLQuery query = (SQLQuery) carInfoDAO.getStoreSession().createSQLQuery(sql)
.addScalar("relationId", Hibernate.STRING);
用这个参数 addScalar或
addEntity
如果是别名只要用addScalar就可以了
public List search(Integer userId) {
Query query = super
.getSession()
.createSQLQuery(
"SELECT {a.*}, c.region_name AS country_name, p.region_name AS province, ct.region_name AS city_name, d.region_name AS district_name "
+ " from `ecs_user_address` as a LEFT JOIN `ecs_region` AS c ON c.region_id = a.country LEFT JOIN `ecs_region` AS p ON p.region_id = a.province"
+ " LEFT JOIN `ecs_region` AS ct ON ct.region_id = a.city LEFT JOIN `ecs_region` AS d ON d.region_id = a.district WHERE user_id="
+ userId)
.addEntity("a", xxx.class).addScalar("country_name",Hibernate.STRING).addScalar("province",Hibernate.STRING).....
return query.list();
}你加了几个别名那么list中遍历取出来的对象是objcet[](list.get(i)) 对应的对象是xxx对象,string,string....