在hibernate中,SQL允许写在配置文件里,下面两个例子分别为HQL和SQL,从多个对象或表中取得一个对象:
HQL:
<query
name="PermissionType.findAllProfilePermissionType">
<query-param name="permissionTypeCodes" type="string"/>
select pt
from PermissionType pt, ProfilePermissionType ppt
where pt.code = ppt.permissionTypeCode
and (:permissionTypeCodes is null
or pt.code not in (:permissionTypeCodes))
</query>
SQL:
<sql-query
name="AgentRef.getAgentRefByAgentID" cacheable="true"
cache-region="/au/com/at2/objects/agentref/AgentRefIdByAgentId">
<query-param name="agentId" type="integer"/>
<return alias="AR2" class="au.com.at2.objects.agentref.AgentRef"/>
SELECT {AR2.*}
FROM AGENT_REF AR1, AGENT_REF AR2
WHERE AR1.AgencyID = AR2.AgencyID
AND AR1.AgentID = :agentId
AND AR2.AgentID IS NULL
AND AR2.DepartmentID IS NULL
</sql-query>
分享到:
相关推荐
在hbm.xml文件中,我们可以使用`<many-to-one>`, `<one-to-many>`, 和 `<many-to-many>`标签来定义这些关联。下面将详细介绍这三个标签及其相关属性。 首先,我们来看`<many-to-one>`标签,它表示多对一的关系。...
它通过实体类和映射文件(hibernate.cfg.xml及.hbm.xml)将对象与数据库表关联起来。在XML配置文件中,我们指定数据源、连接池、实体类和表的映射关系。此外,使用SessionFactory和Session对象,我们可以方便地执行...
String hql = "from Student where age between :minAge and :maxAge"; int minAge = 18; int maxAge = 25; List<Student> students = session.createQuery(hql) .setParameter("minAge", minAge) ....
4. **配置映射文件或使用注解**: 对于每个实体类,我们可以通过XML映射文件(如.hbm.xml)或者直接使用Java注解来定义与数据库表的映射关系。例如,使用注解的方式: ```java @Entity @Table(name = "users") ...
最后,可以通过映射文档定义命名SQL查询,就像调用HQL查询一样方便: ```xml <sql-query name="persons"> <return-alias name="person" class="eg.Person"/> Select person.NAME AS {person.name},person.AGE AS ...
命名查询将HQL语句写在`.hbm.xml`配置文件中,如`<query name="queryUserRange">`,这提高了代码的可维护性。在Java代码中,可以通过`session.getNamedQuery("queryUserRange")`调用。 理解并熟练运用这些HQL特性...
通过配置,它可以根据数据库表的字段信息自动生成User.hbm.xml这样的映射文件,同时也会创建对应的实体类如User.java,以及相关的DAO接口和实现。 **2. Hibernate框架总结(Hibernate-总结.pdf)** 这份文档可能...
- Criteria API或HQL(Hibernate Query Language):用于查询数据库,比原生SQL更面向对象,支持动态查询。 5. **可能出现的问题**: - 配置错误:检查数据库连接信息是否正确,映射文件路径是否匹配。 - 关联...
在使用Hibernate框架时,通常会涉及到两个关键的XML配置文件:`hibernate.cfg.xml` 和 `*.hbm.xml` 文件。 ##### 2.1 hibernate.cfg.xml 此文件是Hibernate的核心配置文件,用于设置数据库连接信息、指定Hibernate...
结果集映射允许我们在hbm.xml文件中定义查询结果如何映射到对象。例如: ```xml <sql-query name="persons"> <return-alias name="person" class="eg.Person"/> Select person.NAME AS {person.name}, person....
**可能原因**:这个错误表明Hibernate无法识别或加载指定的映射文件(例如`User.hbm.xml`)。 **可能的情况**: 1. **HQL语句问题**:在HQL查询语句中使用的实体类名称与数据库表名不一致。 2. **配置问题**:`...
- **可选配置属性**: 如SQL方言(用于正确生成数据库特定的SQL)、外连接抓取(优化查询性能)、自定义CacheProvider(如Redis或Memcached)、查询语言替换(如HQL或C#查询)以及日志设置。 **3. 配置示例** 配置...
最后,为了建立对象与数据库表的映射,你需要创建一个`.hbm.xml`文件,如`Hello_Bean.hbm.xml`,在这个文件中定义对象与表的映射规则,包括列名、类型、主键等。一旦配置完成,Hibernate将能够自动管理对象的创建、...
- 映射文件:使用`.hbm.xml`文件或注解将Java实体类与数据库表关联起来。 - SessionFactory创建:使用`Configuration`类加载配置并建立SessionFactory,它是Hibernate的核心对象,负责管理会话和事务。 5. 示例...
2. **创建SQL查询**:在映射文件(.hbm.xml)中,我们可以为实体类定义一个或多个`<sql-query>`标签来存放自定义SQL。例如: ```xml <sql-query name="getUsersByAge"> <return class="com.example.User"/> ...
例如,在`Student.hbm.xml`和`Class.hbm.xml`中: - 在`Student.hbm.xml`: ```xml <many-to-one name="class" column="class_id" class="com.example.Class" cascade="all" /> ``` 这表示`Student`实体有一个名为`...
将`User.hbm.xml`文件添加到`hibernate.cfg.xml`中,使Hibernate知道这个映射的存在: ```xml <mapping resource="cn/yifine/User.hbm.xml"/> ``` 最后,我们可以使用`hbm2ddl`工具自动生成数据库表,或者手动创建...
12. antlr.jar:语法分析库,用于解析HQL和SQL。 13. ehcache.jar:默认的二级缓存提供者,用于缓存对象和查询结果。 14. 其他可能的依赖,如标准JAR文件(如jms.jar,activation.jar)等,取决于具体环境需求。 **...
1. **配置过程**:在MyEclipse中配置Hibernate环境涉及创建一个新的工程,添加Hibernate库,配置数据库连接(如在`Hibernate.cfg.xml`中),并指定映射文件`*.hbm.xml`的位置,这些文件定义了对象和数据库表之间的...