一对多查询select new Goodstype(gt.id,gt.name) from Goodstype gt where gt.level = 0 order by gt.id desc这样封装没问题当我想对一个 left join 的集合封装 则报错例如 select new Goodstype(gt.id,gt.name,gs) from Goodstype gt left join fetch gt.goodes gs where gt.level = 0 order by gt.id desc已知 gt.goodes gs 是一个SET 构造函数 已作 integer,string,set 报错信息org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [com.ruori.goods.entity.Goods]com.ruori.goods.entity.Goods 应该就是那个gs求解

解决方案 »

  1.   

    如果 hibernate中 使用hql进行连接查询的 话  两张表 必需具有已经配好的映射关系 一对多 还是多对一 或是 多对多
      

  2.   

    com.ruori.goods.entity.Goods 的构造函数不匹配
    无参构造没有? 
      

  3.   

    = = 肯定有映射关系设置 已知在不进行动态封装时 是可以 用的left join 的目的是为了优化 HQL 语句 通过动态封装 约定返回属性com.ruori.goods.entity.Goods 已有无参构造函数
      

  4.   

    把hibernate配置文件和映射实体类到数据库的配置文件粘贴出来
      

  5.   

    。配置我已经暂时修改成 聪明的延迟加载 + 2级缓存了所以配置已经修改 贴不出来了原情况就是那样 1对多 动态封装SET GOODSTYPE 已知构造 有 int,string,set 的一个构造函数还有其他3个构造函数我就不多说了XML 里配置很简单 的一对多错误没有 只是想优化 现在 只需要 动态封装 SET的代码不用 去看我的代码 只要 有 类似的left join 后 进行动态封装 set 的代码就可以
      

  6.   

     hibernate多对一 一对一 一对多 多对多的配置方法 http://www.phome.asia/forum/thread/23525.html

      

  7.   

    愁。我这不是配置问题是动态封装 SET的问题别发一些 配置的回复只用贴出怎么样 动态封装 SET 也就是 一对多查询时对“多” 进行动态封装