今天做项目的时候,有两个实体:款式、品牌两者关系是多对多的关联关系,实现的功能是:通过选择款式,显示出该款式的所有品牌。HQL语句如下:

from Brand as b where b.styles.styleId=? 

运行时出现这个异常错误:org.hibernate.QueryException: illegal attempt to dereference collection 。

通过查资料发现,在上面的HQL语句中,Brand的关联实体styles是一个Set集合,而不是一个Style实体。在 Hibernate3.2.2以前的版本,Hibernate会对关联实体自动使用隐式的inner join,也就是说使用上面的HQL语句是毫无问题的。

但是在Hibernate3.2.2版本以后,Hibernate改变了这种策略。它使用如下策略来关联实体。

同样对于上面的HQL语句。如果styles是一个单个的关联实体或者是一个普通的属性,那么hibernate就会自动使用隐式的inner join。但是如果styles 是一个集合,那么对不起,统将会出现 org.hibernate.QueryException: illegal attempt to dereference collection异常。 对于解决方案就是,要么你退回hibernate3.2.2版本以前,要么使用如下形式的HQL语句:

from Brand as b inner join fetch b.styles as s where s.styleId=?  

转载于:https://www.cnblogs.com/ygjlch/p/3934965.html

解决org.hibernate.QueryException illegal attempt to dereference collection 异常错误相关推荐

  1. Hibernate用Mysql数据库时链接关闭异常的解决

    在一个项目中,客户要求除操作系统外全部使用免费软件,因此我使用了Mysql 4.0作为数据库服务器,其JDBC驱动为3.0.9版本,在给客户安装后调试一切正常.可是到了第二天,只要一登录就提示&quo ...

  2. org.hibernate.QueryException: could not resolve property

    2019独角兽企业重金招聘Python工程师标准>>> org.hibernate.QueryException: could not resolve property错误的解决方法 ...

  3. websphereJDBC提供驱动程序配置问题,导致报错:Illegal attempt to enlist multiple 1PC XAResources

    业务系统界面报错: Illegal attempt to enlist multiple 1PC XAResources 解决: websphereJDBC提供驱动程序,配置有问题. webspher ...

  4. Atitit.解决org.hibernate.DuplicateMappingException: Duplicate class/entity mapping

    Atitit.解决org.hibernate.DuplicateMappingException: Duplicate class/entity mapping 1. 排除流程::: @Depreca ...

  5. org.hibernate.QueryException: Unmatched braces for alias path 解决方案

    org.hibernate.QueryException: Unmatched braces for alias path Caused by: org.hibernate.QueryExceptio ...

  6. Hibernate出现java.lang.IllegalArgumentException: org.hibernate.QueryException

    具体报错如下: java.lang.IllegalArgumentException: org.hibernate.QueryException: Legacy-style query paramet ...

  7. org.hibernate.QueryException: could not resolve property:artical_uid

    今天在使用hibernate查询数据库的时候,报了这个异常.出错的语句是在 detachedCriteria.add(Restrictions.eq("artical_uid",u ...

  8. org.hibernate.QueryException: Unmatched braces for alias path问题记录(目前不知道什么问题导致)

    1.错误 org.hibernate.QueryException: Unmatched braces for alias path [INSERT INTO TENDER_OPENING_TAB ( ...

  9. cann't connect to db! mysql!,解决SQL Error: Can't connect to MySQL server on错误

    解决SQL Error: Can't connect to MySQL server on错误 文章来源:传奇帮手游 发布时间:2020-12-02 文章性质:原创文章 今天帮主在群里看到有一个兄弟在 ...

最新文章

  1. 实例 - 购物车 (列表、循环)
  2. 安装Qt creator时出现 无法定位程序输入点_except1 于动态链接库MSVCR120.dll上
  3. 2015.09.06 C++笔记
  4. windows安装RabbitMQ注意事项
  5. mysql数据库(1):连接与断开服务器
  6. 项目部署到Tomat报错:jar not loaded.See Servlet Spec 2.3, section 9.7.2. Offending
  7. 车模型一般多少钱_婚车租赁一般多少钱?最新婚车出租价格表!
  8. 重庆大学计算机学院国防生,在重大有个国防生男朋友是种什么样的体验?
  9. 洛谷 P2167 [SDOI2009]Bill的挑战
  10. 图像质量评价(Image Quality Assessment,IQA)
  11. Hybrid端口配置理解
  12. 海康威视复赛题 --- 算法说明书
  13. 跟父母还是要保持一定的距离感
  14. 001.Heartbeat简介
  15. Camera 图像处理原理分析- 色彩篇 一
  16. 星门跳跃-rqnoj-341
  17. vue项目设置背景图片
  18. C语言编写九九乘法表,实现不同三角形形状表格输出
  19. 机械秒表的使用方法_浪琴 L683、L688自动上弦机械计时秒表设置方法
  20. java运算符优先级

热门文章

  1. linux重要的目录之proc和dev目录
  2. jpadao层继承什么_实木复合地板特点是什么
  3. ListT to DataTable
  4. 加拿大第二大行TD Bank是如何践行科技战略的?
  5. Java面试题详解一:面向对象三大特性
  6. “音”你而来,“视”而可见 腾讯云+社区音视频技术开发实战沙龙圆满结束...
  7. 简练软考知识点整理-公邀竞单询其
  8. 11.2. simpara
  9. 一起来学jquery!
  10. VISTA系统下装AUTOCAD 2006