`
hfhwan
  • 浏览: 75908 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

zz多对多关系中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';

分享到:
评论

相关推荐

    使用 Morphia 和 MongoDB 实现域模型持久性(ZZ)

    除了基本的数据操作,Morphia 还支持关联映射,比如一对一、一对多、多对多的关系。你可以通过 `@Reference` 或 `@References` 注解来实现。例如,一个 `Post` 类可能包含多个 `Comment`: ```java @Entity("posts...

    使用Matlab对采样数据进行频谱分析【ZZ】.pdf

    在使用Matlab对采样数据进行频谱分析时,我们需要考虑几个关键的步骤和概念。首先,我们将数据导入Matlab,这是分析的基础。有三种主要的导入方式: 1. 手动整理数据:适用于小规模的数据,将数据整理成Matlab支持...

    在Oracle数据库中同时更新两张表的简单方法

    `MERGE`语句可以实现更加灵活的更新逻辑,比如处理一对一、一对多的关联关系: ```sql merge into ZZ_TEST1 t1 using ZZ_TEST2 t2 on (t1."id" = t2."pid") when matched then update set t1."text" = t2."text...

    SQL经典面试题SQL经典面试题SQL经典面试题

    - **解析**:这个查询中使用了一个子查询来获取每个员工所属主管的年龄,然后在外层查询中比较员工年龄和主管年龄。 ### 三、多表联接与数据筛选 #### 1. 联接查询示例 - **题目**:存在三个表,分别为学生表 `...

    matlab算法源码MATLAB中colorbar的设置源码

    2. colorbar的属性调整:在MATLAB中,colorbar具有多种属性,可以通过get和set函数来查询和设置这些属性。属性包括colorbar的位置、大小、标签、刻度、颜色等。通过合理设置这些属性,可以使得colorbar更好地服务于...

    Mongodb in Mycat指南

    通过这种方式,用户可以在Mycat中像管理传统的关系型数据库一样管理MongoDB,极大地简化了开发流程。 #### 三、配置Mycat以支持MongoDB 为了使Mycat支持MongoDB,我们需要对Mycat的配置文件进行相应的修改。具体的...

    python源码集合处理技术

    列表是Python中最基础的数据结构之一,它是一个有序的、可变的集合,可以包含多个元素,元素之间用逗号分隔,整个列表被方括号包围。列表非常适合于需要多次修改的数据序列,Python为列表提供了大量的方法,例如添加...

    linux教程——很使用的那种

    sda1和sda2相当于windows下的c盘和d盘的关系。 各种接口的磁盘在linux中文件名分别为: /dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash等接口的磁盘文件名。第一块硬盘为sda,第二块硬盘为sdb,根据主板上的接口来决定...

    算法文档无代码一些与树有关的题目

    树是一种重要的非线性数据结构,它模拟了具有层次关系的数据结构,在计算机科学中应用广泛。 树的定义和基本术语: 树是一种非线性的数据结构,它包含一系列的节点,并且具有以下特性:有一个特殊的节点称为根节点...

    用maven的xdoclet插件t生成hibernate配置文件

    在软件开发过程中,特别是涉及到数据库交互的应用程序中,Hibernate作为一款流行的Java持久层框架,被广泛应用于对象关系映射(ORM)。而在使用Hibernate时,自动生成配置文件能够极大地提高开发效率,减少手动编写...

    linnux vi 命令 rpm包管理 熟练操作 PPT

    】不想保存修改强制离开,【:wq】保存后离开,【:x】保存后离开,【ZZ】若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开,【:set nu】显示行号。 Linux 软件包管理是指在 Linux 上管理软件包的...

    JavaEE源码电脑彩票销售系统源码数据库sql文档

    以上SQL语句仅为示例,实际的数据库设计会更加复杂,涉及到更多的表结构和关联关系。 ### 五、文档和视频资源的重要性 对于此类项目的开发来说,配套的文档和视频资源是非常重要的,它们可以帮助开发者更好地理解...

    Excel POI读取封装(文件+示范代码)

    // 将数据的英文字段作为key,对映值转换为相应类型 datamap.put(e.getColumn(), obj); } } list.add(datamap); } } return list; } /** 将参数转换为数据库数据 */ public Object convertDataType...

    第2章 前端1 :数据结构和算法上

    1. 排序算法:如冒泡排序、快速排序、归并排序,用于对数据进行有序排列。 2. 搜索算法:如二分查找、深度优先搜索(DFS)、广度优先搜索(BFS),用于查找特定数据。 3. 动态规划:解决最优化问题,如背包问题、...

    java中四个核心思想

    ### Java中的四个核心思想 Java作为一种广泛使用的编程语言,在其设计与实现中蕴含了四大核心思想,这四个核心思想不仅体现了Java的设计理念,也决定了Java程序的运行方式。接下来,我们将详细探讨这四个核心思想:...

    android按键驱动研究

    因此,Android中的按键驱动实质上是对Linux内核输入子系统的定制和扩展。 #### Linux内核中的按键定义 Linux内核中的按键定义主要位于`include/linux/input.h`头文件中。这些定义遵循了USB HUT 1.12标准,该标准为...

    NodeJS安装及环境配置(windows)

    npm 是一个用于管理和自动解决 Node.js 项目依赖关系的工具。当您安装 Node.js 时,npm 也会一同安装。通过 npm,您可以方便地安装、升级或卸载 Node.js 的各种模块。 四、环境配置 环境配置主要涉及两个方面:全局...

Global site tag (gtag.js) - Google Analytics