`

Hibernate(HQL) 子查询 formula公式运用

阅读更多
写HQL时,除了where条件里可以用子查询,其它地方,如select、from面都不允许写子查询语句,如果要在select后面写子查询的话,可以用formula属性来写,如果要在from后面和用子查询则不能用HQL了,改用纯SQL(<sql-query name="">...</sql_query>)。
formula用法举例:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="com.norm.model.Norm"
		table="NORM">
		<id name="id" type="java.lang.String" column="ID">
			<generator class="uuid.hex" />
		</id>
		<property name="name" type="java.lang.String" column="NAME"
			length="100" />
<property name="evaluateCount"
			formula="(select count(d.id) from evaluate d where d.normId = id)" />
	</class>
<query name="getAllNorms">from Norm</query>
</hibernate-mapping>



要注意的是:formula公式里不是能用HQL的,要用纯sql
分享到:
评论
1 楼 cetusz 2011-11-03  
formula 这个东东弥补了hibernate查询灵活性的不足,有种ibatis的味道

相关推荐

    hibernate映射配置文件不支持union联合查询[参照].pdf

    然而,Hibernate的HQL(Hibernate Query Language)或Criteria API并不直接支持复杂的子查询或联接查询,特别是涉及到多表联合查询的复杂子查询,如在示例中所示。 在给出的日志中,可以看到一个嵌套的子查询,尝试...

    Hibernate+中文文档

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) ...

    hibernate3.2中文文档(chm格式)

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) ...

    HibernateAPI中文版.chm

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) ...

    Hibernate 中文 html 帮助文档

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) 16.1.3....

    Hibernate中文详细学习文档

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) ...

    最全Hibernate 参考文档

    19.1.5. 使用子查询抓取(Using subselect fetching) 19.1.6. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略...

    hibernate 体系结构与配置 参考文档(html)

    离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.2. 别名和属性引用 16.3. 命名SQL查询 16.3.1. 使用return-property来明确地...

    Hibernate教程

    16.8. 离线(detached)查询和子查询 17. Native SQL查询 17.1. 创建一个基于SQL的Query 17.2. 别名和属性引用 17.3. 命名SQL查询 17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来查询...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) ...

    Hibernate注释大全收藏

    使用注解可以映射EJBQL/HQL查询,`@NamedQuery`和`@NamedQueries`是可以使用在类级别或者JPA的XML文件中的注解。例如: ```java @Entity @NamedQuery(name="night.moreRecentThan", query="select n from Night n ...

    Hibernate3+中文参考文档

    19.1.5. 使用子查询抓取(Using subselect fetching) 19.1.6. 使用延迟属性抓取(Using lazy property fetching) 19.2. 二级缓存(The Second Level Cache) 19.2.1. 缓存映射(Cache mappings) 19.2.2. 策略...

    hibernate3.04中文文档.chm

    16.8. 离线(detached)查询和子查询 17. Native SQL查询 17.1. 创建一个基于SQL的Query 17.2. 别名和属性引用 17.3. 命名SQL查询 17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来...

    hibernate 框架详解

    离线(detached)查询和子查询 17. Native SQL查询 17.1. 创建一个基于SQL的Query 17.2. 别名和属性引用 17.3. 命名SQL查询 17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来查询 ...

    Hibernate参考文档

    15.8. 离线(detached)查询和子查询 15.9. 根据自然标识查询(Queries by natural identifier) 16. Native SQL查询 16.1. 使用SQLQuery 16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) 16.1.3....

    hibernate annotations详解

    **2.3 映射 JPAQL/HQL 查询** 使用 `@NamedQuery` 注解来映射命名查询。 示例: ```java @Entity @Table(name = "employee") @NamedQuery(name = "findEmployeesByDepartment", query = "SELECT e FROM Employee...

Global site tag (gtag.js) - Google Analytics