现有一张表user_info 里面字段有 id,user_name,company_id(对应下面的公司id)
还有一张表company_info 里面有字段 id,company_name(公司名称)
UserInfo实体 对应字段id,userName,companyId
CompanyInfo实体 对应字段id,companyName
现在想要查询用户名称和用户所属公司名称,并且用一个实体返回
我在UserInfo实体里面加了companyName字段,查询代码如下:String sql = "select u.*,c.company_name as companyName from user_info u,company_info c on u.company_id=c.id";
Query query = sessionFactory.getCurrentSession().createSQLQuery(sql).addEntity(UserInfo.class);
return (List<UserInfo>)query.list();这样sql语句可以查出来companyName,但是没有映射到UserInfo实体里面这个字段上
这里语法该怎么写

解决方案 »

  1.   

    ORM 微持久框架 http://www.verejava.com/?section_id=1704463330451
      

  2.   

    select u.company_id as companyId,u.user_name as userName,c.company_name as companyName from user_info u,company_info c on u.company_id=c.id
    query.setResultTransformer(Transformers.aliasToBean(UserInfo.class));
      

  3.   

    companyName 这个字段 UserInfo实体对应的表没有这个字段  需要在这个字段上面加@Transient注解吗
      

  4.   

    非表字段需要加@Transient 
    hibernate可以强制转换对象而非实体     query.setResultTransformer(Transformers.aliasToBean(UserEntity.class));   可以把非实体对象注入