hibernate3.2多表关联查询常见问题
1.org.hibernate.hql.ast.QuerySyntaxException: user is not mapped [from user]错误
今天学习hibernate。用MyEclipse部署。但是出现
org.hibernate.hql.ast.QuerySyntaxException: user is not mapped [from user]
在网上查了原因:
1、hibernate.cfg.xml少了很多映射.为什么会少呢?因为我的都是拷贝过来的。不是自动生成的。另外 hibernate.cfg.xml,要放在根目录下。
把你要映射的都写上去。
<mapping resource="....包名.../Companyinfo.hbm.xml" />
<mapping resource="....包名.../Companyinfo.hbm.xml" />
<mapping resource="....包名.../Companyinfo.hbm.xml" />
<mapping resource="....包名.../Companyinfo.hbm.xml" />
<mapping resource="....包名.../Companyinfo.hbm.xml" />
2、现象:
使用hql="from person" 出现" person is not mapped " 错误
配置文件如下:
<hibernate-mapping>
<class name="src.Person"
table="person">
<id name="name"/>
<property name="password"/>
</class>
</hibernate-mapping>
原 因:
hql是写的是PO对象,不是table名
故改为配置文件中的红色部分的类名即可。
我出现的是第二种情况,记录一下。
2.
org.hibernate.QueryException: could not resolve property
一般地,如果涉及到属性类型无法解析的异常,可能出现问题的地方有:
数据库字段与持久化类映射文件,以及持久化类文件中属性名称或者类型可能不相匹配;
持久化类映射文件中属性类型可能有问题,比如,如果使用Java类型,注意大写(如type="java.lang.String"),如果使用Hibernate类型,使用小写(如type="string")。
3.illegal attempt to dereference collection
from Department as d where d.employees.name='Tom';
运行时出现异常:org.hibernate.QueryException: illegal attempt to dereference collection
是因为:在上面的HQL语句中,Department的关联实体employees是一个集合,而不直接是一个Employee实体。
在Hibernate3.2.2以前的版本,Hibernate会对关联实体自动使用隐式的inner join,
也就是说如下SQL语句不会有任何问题 :from Department as d where d.employees.name='Tom';
从Hibernate3.2.3以后,Hibernate改变了这种隐式的inner join的策略
对于如下这条语句:
from Department as d where d.employees.name='Tom';
如果employees是普通组件属性,或单个的关联实体,则Hibernate会自动生成隐式的inner join
如果myEvents是也一个集合,那么对不起!系统将会出现 org.hibernate.QueryException: illegal attempt to dereference collection异常。
据Hibernate官方说法:
这样可以让这使得隐含关联更具确定性(原文:This makes implicit joins more deterministic )。
推荐这样写:
from Department as d inner join fetch d.employees e where e.name='Tom';
转载于:https://www.cnblogs.com/dandan1224/p/6109319.html
hibernate3.2多表关联查询常见问题相关推荐
- 解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题)
解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) 参考文章: (1)解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) (2)https: ...
- asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
本文我们将继续分享介绍Spring Boot在整合Mybatis开发企业级应用时其他典型的业务场景,即Mybatis是如何实现多表关联查询时将查询结果集与对象进行映射的,主要的内容包含"一对 ...
- jpa多表关联查询_JPA【关联查询篇】
摘要:本文主要介绍JPA的多表关联查询(一对一.一对多.双向关联.多对一.多对多)以及N+1查询的优化. 1. JPA多表关联查询 多表关联查询就是实现使用一个实体类对象操作或者查询多个表的数据. 配 ...
- oracle多表关联查询报表,oracle多表关联查询和子查询
oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...
- 面试官:为什么mysql不建议执行超过3表以上的多表关联查询?
概述 前段时间在跟其他公司DBA交流时谈到了mysql跟PG之间在多表关联查询上的一些区别,相比之下mysql只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort ...
- Mybatis-plus多表关联查询,多表分页查询
学习plus真的觉得写代码真的越来越舒服了.昨天开始接触吧,只要学会了多表关联查询.plus就能随意搭配使用了. 关于怎么搭建的就自行了去研究了哦.这里直接进入主题. 我用的是springboot+m ...
- mysql join on 索引_连接查询,表关联查询join on,索引,触发器,视图
一.连接查询 1.统计每一个部门的人数 "部门名,部门的人数" select department,count(eid) from employee group by depar ...
- 【SQL】在SQL Server中多表关联查询问题
好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...
- RDIFramework.NET 中多表关联查询分页实例
RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...
最新文章
- android视频拷到iphone6s,爱思助手怎么把电脑视频导入iphone6s
- 飓风“桑迪”路径图的制作
- npm install 原理(node_modules)
- 高精度模板(含加减乘除四则运算)
- 迁移pg_PG奥斯卡!云数据库专属集群MyBase荣获2020 PG亚洲大会“年度最佳产品奖”...
- java查看jdk源码_Java-如何查看JDK源码
- mfc切换office样式_干货搬运工|计算机二级office必读,裸考也能通关的宝典
- gdb调试时调用函数、设置观察点以及GDB的宏
- MIT6.830 Lab3 Query Optimization 实验报告
- FFMPEG结构体分析:AVFrame
- 35岁是继续做测试,还是回家送外卖?
- LOCKDIR加密文件的破解心得
- PHP连接MySQL-踩坑总结
- 【项目管理】干系人管理
- Adobe flash professional CS5的序列号
- 星上SAR实时处理调研1
- 计算机入门模拟考试C,计算机入门模拟卷C.doc
- 【趣文】秦始皇与区块链竟然有关系
- 论文阅读 激光脉冲主动非视距成像+深度学习 || Learned Feature Embeddings for Non-Line-of-Sight Imaging and Recognition
- Duplicate class okhttp3...