-
Hql 中关于 count(*) 和 inner join fetch 联合使用的问题!急。。。3
hql 如下:
String hql="from FcInstrateAdjust a inner join fetch a.fcAcc inner join fetch a.fcAcc.btNet inner join fetch a.fcInterestType where 1=1 ";
在构建Query对象的时候报错:
代码片段:
Query query = getSession().createQuery(
"select count(*) " + hql);
错误信息为:
query specified join fetching, but the owner of the fetched association was not present in the select list
------------------------------
想知道原因,及 解决方法,谢谢大家!2010年3月25日 11:01
相关推荐
JOIN操作允许从多个表中合并数据,常见的JOIN类型有INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN。 在数据库设计方面,Oracle支持实体关系模型(ER模型),包括主键、外键、索引等概念。主键是唯一标识表中...
- **面向对象的查询**:HQL 通过使用类名和属性名称来引用数据库中的实体,这种方式更接近于 Java 对象模型。 - **支持高级特性**:HQL 支持复杂的查询操作,如联接、分组、排序等,并且可以很好地处理一对多和多对...
- 在HQL查询语句的`WHERE`子句中使用子查询。 - 关键字`ALL`, `ANY`/`SOME`, `IN`, `EXISTS`等可以用于子查询。 - **HQL提供的集合操作函数**: - `size()`/`size`: 获取集合中元素的数目。 - `minIndex()`/`...
HQL支持内连接(INNER JOIN)、左连接(LEFT JOIN)等,可以方便地处理关联关系。例如: ```sql SELECT s, c FROM Student s LEFT JOIN s.courses c ``` 这个查询将返回每个学生及其所有关联的课程。 **6. HQL的聚合...
1. **查询语句结构**:HQL查询语句的基本结构类似于SQL,由`FROM`、`WHERE`、`SELECT`、`GROUP BY`、`ORDER BY`等关键字组成,但使用类名和属性而非表名和列名。 2. **实体与类**:在HQL中,数据库表被映射为Java类...
- **子查询**:在HQL中,可以嵌套查询,作为WHERE子句的一部分或者在FROM子句中使用。 4. **HQL的参数绑定** 类似于SQL的预编译语句,HQL也支持参数绑定,防止SQL注入。例如: ```sql FROM Employee e WHERE e....
HQL提供了一种强大且灵活的方式来查询和操作ORM框架中的对象,它通过类和对象的关系映射,简化了与数据库的交互,提高了代码的可读性和可维护性。了解并熟练掌握HQL,对于使用Hibernate或其他类似的ORM框架进行开发...
- **指定别名**:在大多数情况下,需要为查询的目标类指定一个别名,以便在后续查询中使用。例如`from Cat as cat`,这里`cat`就是`Cat`类的别名。`as`关键字是可选的,也可写作`from Cat cat`。 #### 四、关联与...
- 在实体类中使用`@ManyToMany`注解来定义这种关系。 #### 二、HQL查询技术 **2.1 为什么使用HQL查询** - **面向对象**: HQL采用面向对象的语法结构,更加直观易懂。 - **避免SQL注入**: 使用HQL可以减少SQL注入...
- **限制**:`fetch`连接不能在使用`scroll()`或`iterate()`方法的查询中使用;也不能使用`full join fetch`或`right join fetch`。 #### 五、其他注意事项 - **延迟加载**:如果使用属性级别的延迟加载(默认通过...
4. **JOIN与ASSOCIATION**:HQL支持INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN和FULL JOIN四种连接类型。通过JOIN关键字,HQL能够处理实体间的关联,从而实现对关联实体的查询。例如,“JOIN cat.mate as mate...
在实际开发中,开发者可以根据需求构建更复杂的查询,包括使用JOIN、GROUP BY、HAVING等子句,以及使用更复杂的查询构造。同时,需要注意的是,HQL执行时需要考虑事务管理,以确保数据的一致性和完整性。
在这个名为“Spring--HQL-chaxun.zip_HQL”的压缩包中,包含的文档“Spring中常用的HQL查询方法.doc”会详细讲解如何在Spring环境中使用HQL进行数据查询。 1. **HQL的基本概念**: HQL允许开发者用类和属性名称来...
例如:from Cat as cat,这个语句把别名 cat 指定给类 Cat 的实例,这样我们就可以在随后的查询中使用此别名了。 关键字 as 是可选的,我们也可以这样写:from Cat cat。子句中可以同时出现多个类,查询结果是产生...
HQL作为一种高度集成的查询语言,不仅简化了数据访问的复杂度,而且通过其丰富的功能,如JOIN和FETCH子句,以及对特定属性的选择,为开发人员提供了灵活的数据检索手段。掌握HQL,意味着能够在Hibernate框架中实现...
但`fetch`连接不应在使用`scroll()`或`iterate()`的查询中使用,且`full join fetch`和`right join fetch`没有实际意义。 4. `select`子句 `select`子句用于定义查询返回的内容。你可以选择返回整个对象,或者只...
6. **函数与操作符**:HQL支持多种函数,如聚合函数(`count`、`sum`、`avg`、`max`、`min`)和日期时间操作。同时,它也支持比较操作符(`=`, `, `>`, `, `>=`, `!=`),逻辑操作符(`and`, `or`, `not`),以及...
- HQL支持在SELECT、FROM、WHERE子句中使用子查询。 - 子查询可以返回单个值,也可以返回对象列表。 8. **参数化查询** - 使用问号(?)作为占位符,防止SQL注入攻击。 - 可以使用Query接口的setParameter()...
HQL还支持对关联实体和集合中的元素指定别名,这时需要使用`JOIN`关键字: ``` FROM Cat AS cat INNER JOIN cat.mate AS mate LEFT OUTER JOIN cat.kittens AS kitten ``` 这里使用了不同的连接类型,它们分别是:...