复合查询:
复合查询主要是处理,具有关联关系的两个实体怎样进行关联查询,比如User实体对象与Addres实体对象具有一对多的关联关系,我们可以如下构造符合查询:
Criteria criteria=session.createCriteria(User.class);
Criteria addcriteria=criteria.createCriteria(“addresses”);(1)
addcriteria.add(Express.like(“address”,”%tianjin%”));
List list=criteria.list();
for(int i=0;i
User user=(User)list.get(i);
System.out.println(user.getName()+”\n”);
Set addresses=user.getAddresses();
Iterator it=addresses.iterator();
while(it.hasNext(){
Address address=(Address)it.next();
System.out.println(address.getAddress()+”\n”);
}
}
当执行到了(1)处时,表明要针对User对象的addresses属性添加新的查询条件,因此当执行criteria.list()时,Hibernate会生成类似如下的SQL语句:
Select * from user inner join address on user.id=address.id where
address.address like ‘%shanghai%’;
正如我们所见,我们可以通过向Criteria中添加保存关联对象的集合属性(addresses属性保存与User对象相关联的Address对象),来构造复合查询,在数据库一端是通过内连接查询来实现。
分享到:
相关推荐
Criteria API 是另一种进行动态查询的方式,比 HQL 更为灵活,允许在运行时构建查询。它通过构建 Criteria 对象并添加限制条件来生成查询。 7. **事务管理** Hibernate 支持 JTA(Java Transaction API)和 JDBC ...
5. JAVA语言的应用:JAVA语言是一种基于面向对象的编程语言,它能够实现面向对象的编程。我们使用JAVA语言来实现系统的业务逻辑,并使用其它技术来实现系统的其它功能。 6. 数据库设计:数据库设计是指对数据库的...
这个备忘系列将探讨 Spring 的主要组成部分和使用方法。 **IoC 容器** IoC 是 Spring 的核心概念,它通过反转对象创建和管理的控制权,使得开发者不再手动实例化对象,而是由框架负责对象的生命周期。Spring 提供...
工厂方法模式是一种创建型模式,提供了一种创建对象的方法,可以根据需要创建不同的对象。工厂方法模式的优点是可以根据需要创建不同的对象,而不需要关心对象的创建细节。 1.1.2 抽象工厂 抽象工厂模式是一种创建...
- **MVC框架**:至少熟练掌握一种MVC框架(如SpringMVC、Struts)的工作原理和使用方法。 - **ORM框架**:至少精通一个ORM框架(如Hibernate、MyBatis),理解对象关系映射的概念及其在项目中的应用。 #### 数据...
它提供了一种组织应用程序的方式,使得开发者能够更高效地构建可维护、结构清晰的Web应用。本备忘录将深入探讨Struts的核心概念、架构以及如何在实际项目中使用它。 **1. MVC模式** Struts是基于Model-View-...
Java作为一种广泛应用的编程语言,提供了多种实现数据库版本控制的方法。本篇文章将深入探讨“java版本控制(数据库版本控制)”,并结合备忘录设计模式来阐述其原理和实践。 首先,我们来理解什么是备忘录设计模式...
Oracle 存储过程是 Oracle 数据库中的一种程序单元,能够完成复杂的业务逻辑和数据操作。Oracle 存储过程的基础知识包括了解 Oracle 存储过程的基本语法、数据类型、变量声明、控制语句、循环语句、异常处理等方面的...
4. **迭代器模式**:提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 5. **中介者模式**:定义一个中介对象来简化原本复杂的对象间交互。 6. **备忘录模式**:在不破坏封装性的前提下,捕获一个对象的...
8. **迭代子模式**(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 9. **模板方法模式**(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,...
Hibernate支持CRUD(创建、读取、更新和删除)操作,并提供了一种称为HQL(Hibernate查询语言)的SQL方言,用于执行复杂的数据库查询。 3. **动态bean技术**: 动态bean允许在运行时动态创建和修改对象的属性,...
Oracle PlSql 存储过程是 Oracle 数据库中的一种编程语言,用于实现复杂的业务逻辑和数据处理。下面是对 Oracle PlSql 存储过程的详细介绍: 一、 Oracle 存储过程目录 Oracle 存储过程目录是指 Oracle 数据库中...
- 迭代器模式(Iterator):提供一种方法顺序访问聚合对象的元素,而又不暴露其底层表示。 - 中介者模式(Mediator):定义一个中介对象协调多个对象之间的交互。 - 备忘录模式(Memento):在不破坏封装的前提下...
Java EE 是一种流行的企业级应用平台,广泛应用于企业级应用开发中。个人数字图书馆是指个人管理和组织数字资源的系统,旨在帮助个人更好地管理自己的知识和信息资源。基于 Java EE 的个人数字图书馆的设计与实现是...
Oracle PL/SQL存储过程是Oracle数据库中的一种重要编程机制,用于封装复杂的数据库操作逻辑,提高数据库性能,并且便于代码管理和重用。以下是对Oracle存储过程的详细解释。 **Oracle存储过程基础知识** Oracle存储...
- **使用Hibernate调用存储过程**: Hibernate提供了一种便捷的方式来调用存储过程,并处理结果集。 #### 九、在存储过程中做简单动态查询 - **本地动态SQL**: 直接在存储过程中构建动态SQL语句。 - **使用DBMS_SQL...
例如,单例模式确保一个类只有一个实例,而工厂方法模式则提供了一种创建对象而不暴露其创建过程的方式。 3. **结构型模式** 结构型模式关注如何将类或对象组合成更大的结构,比如适配器(Adapter)、桥接(Bridge...
PACKAGE集合了多个存储过程、函数、变量和SQL语句,允许共享变量和游标,提供了一种模块化的方式来组织和管理复杂的数据库逻辑。 综上所述,Oracle存储过程的学习不仅涉及基础语法和结构的理解,还需要掌握其高级...
设计模式是软件工程中的一种重要概念,它是在特定情境下为了解决常见问题而形成的一套最佳实践。这些模式经过时间的验证,被广泛应用于各种编程语言中,以提高代码的可读性、可维护性和复用性。设计模式不仅体现了...
Java是一种广泛使用的面向对象的编程语言,以其平台独立性、高效性和丰富的类库而闻名。在Java面试中,面试官通常会考察候选人的基础知识、编程能力、问题解决技巧以及对框架和并发的理解。本资源“java面试题大全”...