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();
}

解决方案 »

  1.   

    这两个表 的 查询  级联查询  
    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  值 循环出来两个表 两个类 没有关联
      

  2.   

    // Relation类 private Short regionId;
    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;
      

  3.   


    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就可以了
      

  4.   

    addEntity(Class) ;这个只能取出一个类的信息 另外一个类 没法取出来啊
      

  5.   


    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....