`

多对多关系中Set的查询

 
阅读更多
多对多关系中Set的查询
一个老师教多个学生,一个学生有多个老师。

class Teacher {
String id;
String name;
Set students;
}

class Student {
String id;
String name;
Set teachers;
}

现在要查询教某一个学生(name为xxx)的老师。

HSQL方法一:(性能最优)
select elements(s.teachers) from Student s where s.name = 'xxx';

HSQL方法二:(要用到 inner join)
select t from Teacher t join t.students s where s.name = 'xxx';

HSQL方法三:(要用到子查询)
select t from Teacher t, Student s where s in elements(t.students) and s.name = 'xxx';

 

分享到:
评论

相关推荐

    Hibernat 使用Criteria查询多对多关系(SET集合)条件

    Hibernat 使用Criteria查询多对多关系(SET集合)条件

    关于Django ForeignKey 反向查询中filter和_set的效率对比详解

    大家使用 Django 创建模型的时候一定会经常使用 ForeignKey 来创建两个表格之间多对一的外键关系,例如B中有一个 models.ForeignKey(A) 。而当我们需要反向查询 A 中某个具体实例所关联的 B 时,可能会用到 A.B_set....

    Hibernate学习笔记_songjignhao_1

    内容很详细,有代码,包括:一对多双向关联关系、一对多双向自身关联关系、一对一关联关系(主键关联、外键关联)、一对多与一对一结合、多对多关联关系、Map、Set、List与Bag映射关系、查询排序(内存排序和数据库...

    mysql中find_in_set()函数的使用及in()用法详解

    主要介绍了mysql中find_in_set()函数的使用以及in()用法详解,需要的朋友可以参考下

    C++primer文本查询程序

    为c++primer第15张课后习题,在一个文本中查找单词。...通过这里例子,可以很好的学习继承关系,句柄类的使用及作用,对单词的查找,还用到了vector容器,set容器,map容器,对着三个容器的使用也会得到学习

    精通SQL 结构化查询语言详解

    10.1.1 在多表查询中使用子查询  10.1.2 在子查询中使用聚合函数  10.2 创建和使用返回多行的子查询  10.2.1 IN子查询  10.2.2 IN子查询实现集合交和集合差运算 10.2.3 EXISTS子查询  10.2.4 EXISTS子...

    精通sql结构化查询语句

    9.6.2 内连接与右外连接的综合应用 9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询中使用子查询 10.1.3 在子查询中使用聚合函数 10.1.4 使用...

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

    7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) ...

    java面试宝典

    (如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 103、Struts的validate框架是如何验证的...

    在IDEA中通过MyBatis框架访问达梦数据库

    通过例子,介绍通过MyBatis访问达梦数据库,及各种关联查询,包括一对一、一对多、及多对多的关联关系的持久化类、Mapper、接口和测试。

    ASP083客户关系管理\客户关系管理

    用户可以在报表管理页面中的联系人报表查询部分,输入一定的查询条件,进行联系人信息的查询。 2.导入Excul 用户在查询部分输入查询条件后,单击【导入Excul】按钮,用户所添加的查询条件将被提交给数据处理页,...

    数据库SQL查询语句练习题.doc

    结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; sql 语句就是对数据库进行操作的一种语言。 常见语句 ...

    跟我学 SQL ——基本结构化查询语言

    另外,数据集合(data set)则指的是多行多列的数据,而且数据集合通常说明你的数据库或数据表内的全部数据。结果集合(result set)就是从数据库查询返回的数据;它能够描述从单一字段到数据库内全部数据这一范围内...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    它们将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化编程(procedural programming)更具优势。同时,它还会教你识别使用基于游标解决方案与基于集合解决方案的优劣。  书中还...

    mysql 查询语句大全及用法10条.docx

    MySQL 是一种常用的关系型数据库管理系统, 提供了强大的 查询语言(SQL)来操作和管理数据库。下面是一些常见的 MySQL 查询语句及其用法: 1. SELECT 语句: - 用法:用于从数据库中检索数据。 - 示例: ...

    hibernate总结

    表:材料表和产品表多对多,在数据库中有中间表即产品材料表用来存放两个表之间的关系 Java类:材料PO,产品PO,中间PO,中间PO的复合主键类(由于是两个一对多形成的多对多,所以,这里只讲一个一对多,另一个是相同...

    mysql 查询语句大全及用法10条.7z

    MySQL 是一种常用的关系型数据库管理系统, 提供了强大的 查询语言(SQL)来操作和管理数据库。下面是一些常见的 MySQL 查询语句及其用法: 1. SELECT 语句: - 用法:用于从数据库中检索数据。 - 示例: ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     7.1 建立多对一的单向关联关系  7.1.1 元素的not-null属性  7.1.2 级联保存和更新  7.2 映射一对多双向关联关系  7.2.1 元素的inverse属性  7.2.2 级联删除  7.2.3 父子关系  7.3 映射一对多双向自身关联...

Global site tag (gtag.js) - Google Analytics