bernate的集合映射与sort、order-by属性

vuecli3 实现 移动端和pc端 界面切换(两套代码) 适合场景 多页面多系统应用 所有系统都在同一目录下。配置多入口多出口。每个系统之间可以链接。每个系统内依然采用Vue单页应用开发。 产品需求:一套代码 兼容pc端和移动端 , 移动端和pc端的样式布局差别很大,需要使用多界面,并判断使用手机的时候跳转移动端代码,使用pc端跳转pc端代码。 项目目录 分为两部分代码,pc 和mobile 第一步:创建一个登陆页面的文件 在项目public文件夹下创建一个login.html,其实就是将index.html复制一份,将title改一下: <!DOCTYP 阅读详情
    <div class="postBody">
        <div id="cnblogs_post_body"><p>【Hibernate】Hibernate的集合映射与sort、order-by属性</p>

常用集合Set、List、Map,相信大家都很熟悉,面试中也会经常问。Set和List都继承了Collection接口,Set是无序不可重复的,不可以存储相同的元素;而Lsit是顺序存储的,可存储重复元素。Map不是继承Collection的,Map提供key到value的映射,Map也是不可重复的(key不可重复),一个Map中不能包含相同的key,每个key只能映射一个value。

持久化类的属性是集合时,要把它们存到数据库中,需要增设数据库表来完成映射工作。例如一个学生的教育背景可能不止一个,这个时候持久化类的属性是集合,这个时候数据库就需要再提供一张数据库表来存储。

由上图可以看出,集合的映射应该怎么写了。集合的映射大致一样,我们用Set的映射来详细说明。

 

<set name="education" table="student_education" order-by=" education DESC">
            <key column="student_id"></key>
            <element type="string" column="education"></element>
</set>

 

name属性是指对象的集合属性名,table属性是指集合表(数据库表)的名称,key子元素是指集合外键的列名,element子元素用来存放集合元素的列的信息,order-by属性是指查询数据库时指定order by 子句,这是在数据库中的排序。对于Set的排序,还有另外一个属性sort,它是在内存中排序的,默认是unsorted,sort还有其它两个值:natural和comparatorClass,当使用sort属性时,要求使用的是可以排序的Set,例如TreeSet等。

List的映射:

<list name="education" table="student_education">
            <key column="student_id"></key>
            <list-index column="list_id"></list-index>
            <element type="string" column="education"></element>
</list>

List的映射与Set很相似,多了一个list-index子元素,是指定List的索引对应于集合表中的哪个字段。因为List是有序的,可以通过索引来取值。也正因为有序,所以不可以使用sort属性进行排序。

Map的映射:

 

<p><map name="education" table="student_education"></p><p>                     <keycolumn="student_id"></key></p><p>                     <map-keytype="string" column="map_key"></map-key></p><p>                     <element type="string"column="education"></element></p><p></map></p>

 

map-key子元素是指定Map的key值对应集合表中的哪个字段。

除了这3个常用的集合的映射,hibernate还提供了另外两种集合的映射:数组和Bag。数组性质跟List相似,但是数组的长度不可变;Bag也与List相似,但是它是无序可重复的。因此数组的映射与List基本一样:

<array name="education" table="student_education">
            <key column="student_id"></key>
            <list-index column="list_id"></list-index>
            <element type="string" column="education"></element>
</array>

而Bag的映射就比List少一个list-index子元素:

 

<bag name="education" table="student_education">
                     <keycolumn="student_id"></key>
                     <elementtype="string" column="education"></element>
</bag>

注意:

 

使用集合属性时,一定要使用接口,而不能声明为具体实现类。因为经过session操作后,集合就变成hibernate自己的集合实现类。

最好再整理一次关于sort也order-by属性的使用:

由于Set与Map都是无序的,所以我们可以使用sort或者order-by属性对它们进行排序。sort是在内存中排序的,要求使用的Set与Map也是可排序的。这种排序方法不建议使用,使用较多的,排序也比较快的是使用order-by属性,直接在数据库中排序。

【网络与爬虫 44】Canvas指纹伪造技术:突破浏览器图形渲染检测的终极指南 Canvas和WebGL指纹是现代反爬虫系统中最难绕过的检测技术之一,它们通过分析浏览器图形渲染的细微差异来识别用户设备。本文将深入解析Canvas和WebGL指纹的工作原理,探讨其在反爬虫检测中的应用,并提供多种有效的伪造和绕过策略,帮助开发者理解并应对这些高级检测技术。 阅读详情

相关推荐

写出GD32L233/235在读写flash的区别(用于OTA功能)

在单片机里面表示 大概是 address += sizeof(uint32_t) address += sizeof(uint64_t)1.说到OTA功能,实际上 往flash 指定区域写 数据, 拷贝数据,然后 跳转, 必要时 注意单片机的偏移量。在写本文时,L233支持单字写入,而L235只有双字写入. 一个写入地址+4 一个写入地址+8。这个是 自己写的擦除一页 数据,当然可以参考 提供的demo去实现,看自己需求。接下来是 读取 双字,也就是在L235上的读取。

teleger的博客 908

【Hibernate】Hibernate的集合映射与sort、order-by属性

常用集合Set、List、Map,相信大家都很熟悉,面试中也会经常问。Set和List都继承了Collection接口,Set是无序不可重复的,不可以存储相同的元素;而Lsit是顺序存储的,可存储重复元素。Map不是继承Collection的,Map提供key到value的映射,Map也是不可重复的(key不可重复),一个Map中不能包含相同的key,每个key只能映射一个value。 持久化类

LZGS_4的专栏 3690

新华硕笔记本ubuntu18.04双系统安装之后,wifi没有显示无法链接wifi

本来我以为跟简单安装一个wifi网卡的驱动就可以解决的问题,没想到花了我一早上的时候解决… 惭愧。 另外,本来是没打算写这篇博客的,但是我在搜索解决这个问题的过程中, 发现多人提出的解决方案跟我的都不一样,甚至我的解决方案都没有搜到相应的答案,还是只能靠自己啊。。 言归正传,还是说说怎么正确的安装wifi驱动吧! 1. wifi没有正确安装、或没有正确配置的表现 我的电脑现象: 有wifi图标, wifi设置上显示unaviable,无法搜索到任何wifi; 还有其他类似的表现,大家可以看看其他朋友的提

Ian的博客 1890

Hiberante 中 sort 的实现方式

http://hi.baidu.com/accpandsvse/blog/item/a12c22f23d0d1bc20a46e091.html http://hi.baidu.com/accpandsvse/blog/item/a12c22f23d0d1bc20a46e091.html 從資料庫的觀點來看,Set、Map、Bag是無序的,而List是有序的,這邊所謂的無序或有序,是指將容器...

DGenerationX的专栏 259

【Tessent Shell Users Manual】【Ch3】Design Introspection and Editing(未完待续)

Tessent Shell 提供了一系列用于检查(examining/introspecting)和编辑design的命令。

Tranquil_ovo的博客 1731

11-4 AEB 算法原理及系统组成

本专题旨在探讨如何利用仿真软件开发自动紧急制动系统AEB,主要通过整理开发流程,实现从需求到验证的全流程掌握,为后续开发提供支持;同时,研究了如何在汽车自动驾驶仿真工具中开发自己的算法,并解决了从ISO、E-CNAP、GB/T以及交通法规等提炼出功能需求的问题,以快速实现原型模型的开发。本专题重点讲解了AEB的工作原理、系统/软件架构和需求、算法模型及实现、CCRs/CCRb/CCRm建模与仿真、VRU-AEB-B/P/M建模与仿真,同时还提供了测试用例,期待将AEB算法成功地产品化。

AIgraphX 8556

Hibernate(2)【sort和order by】排序的区别

在Hiebernate集合映射关系中,排序问题<set name="addresses" table="addresses" *sort="natural"*> <key column="uid" /> <element column="address" type="string" /> </set>sort=”natural”保证了出库排序,而

Renshaoxiong的博客 1318

ArcGIS:根据DEM数据提取区域水系

利用DEM数据提取区域水系是常见的水文分析应用,为了获取区域的矢量水系数据,我们可以通过ArcGIS对高程DEM数据进行水文分析,为地表水流建立模型,进而获取到该地的水系数据,DEM数据精度越高,获取到的水系数据精度也就越高。以下介绍如何用ArcGIS提供的工具提取水系。

Oruizn的博客 9110

Hibernate中的HQL语言

一、HQL语言简介 HQL全称是Hibernate Query Language,它提供了是十分强大的功能,它是针对持久化对象,直接取得对象,而不进行update,delete和insert等操作。而且HQL是面向对象的,具备继承,多态和关联等特性。 HQL的语法类似于SQL,其常用的方法如下: [select|update|delete 子句] [from 类名列表] [where...

weixin_33672400的博客 490

GameFramework教程✨六、怎样加载一个3D UI

怎样加载一个3D UI

星河造梦坊 1583

无刷电机里的霍尔传感器,和 AS5600 编码器到底有什么区别?

摘要: 无刷电机中的霍尔传感器主要用于换相控制,提供6种状态反馈,无法实现精确角度测量。与AS5600磁编码器(分辨率4096)相比,霍尔仅能确保电机“转得对”,而编码器则用于高精度角度反馈。在机器人等需要位置闭环的场景中,两者需协同使用:霍尔负责基础换相,编码器提供精确角度控制。简单应用中可仅用霍尔,但高精度定位必须搭配编码器。

qq_45430571的博客 243

Hibernate实战——Set集合属性

一配置文件 <?xml version="1.0" encoding="GBK"?> <!-- 指定Hibernate配置文件的DTD信息 --> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http:...

实践求真知 569

在 Eclipse 中接入 DeepSeek:开启 Java 开发新效率

DeepSeek 能够根据自然语言描述,精准生成高质量的 Java 代码片段。无论是简单的方法编写,比如 “编写一个 Java 方法,用于计算两个整数的乘积”,还是复杂的类和功能模块创建,例如 “创建一个 Java 类,实现文件的读写操作,并包含异常处理机制”,它都能快速给出合理且可运行的代码示例。DeepSeek 生成的代码不仅实现了基本功能,还遵循 Java 的编码规范,添加了必要的注释,让代码更易于理解和维护,大大节省了开发者从头编写代码的时间和精力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4068

Hibernate映射集合属性3__排序用的sort属性

如果在数据库中实现不了排序,才启用这个 sort="unsorted|natural|comparatorClass" 默认为:unsorted 自然排序:natural 比较器类排序:comparatorClass user.setAddressSet(new TreeSet());// 当设置了sort属性时,就要使用SortedSet类型 user.getAddressSe

辐_射的博客 1309

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

hibernate注解排序@orderBy

[html] view plain copy @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "province")   @OrderBy(clause = "cityId asc")   public SetCity> getCities() {       r

Daily one note for Java 6396

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lodash的orderBy函数:对集合根据指定的字段的值排序

lodash的orderBy函数:对集合根据指定的字段的值排序

听海边涛声 902

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

阿里巴巴编程规约之集合处理

阿里巴巴编程规约之集合处理

xuzhiyongcsdnper 363

hibernate第二天——值类型的集合(set,map,list,bag,sort,order-by),实体类型集合,关联关系,3l类型Long,inverse,级联

1、值类型的集合 集合元素是普通类型 (1)、数据存放类型 Set         HashSet 无序,不重复 List         有序,可重复 Map         键值对         HashMap 无序,不重复(以key为准) ----------------------------------------------- 数组 Bag

danny1991的博客 2350

js模糊查询数组中的某个值

一次在写代码时需要将一些值以json的格式写入数组,然后可能会需要找到一些值,但是要找的值不足以直接拼接成一个完整json去查询,所以需要用到模糊查询,所以就想了一个办法来查询。 虽然这只是一个取巧的办法,但是简单 思路如下: 获取到要查询的值。 循环得到Array里的值。 用indexOf查询是否能在这个值里面找到。 如果能找到这个值,就把这个值放入新的数组中。 然后你就找到你要的...

Create_Time_NET的博客 6565

Hibernate(十二)hibernate查询排序组件映射

在实际开发过程中,有很多用户需要时要把查询出来的结果进行排序显示,而不是在数据库里面那样顺序混乱那样的显示,这样的话我们不得不要对数据进行排序了,hibernate对数据排序提供了很好的支持,hibernate提供了两种对查询到得数据结果进行排序:1:数据库排序,也就是说在数据库内部就进行完了排序。2.内存排序,也就是说在数据库中把数据加载到内存中在进行排序。其实一般我们推荐使用第二种排序方式,因

u014654942的专栏 701

hibernate 排序_Hibernate提示:排序和排序

hibernate 排序 让我们介绍另一个Hibernate性能提示。 你还记得以前的Hibernate的模式后 ? 我们有一个与一对多协会有关的星际飞船和军官。 @Entity public class Starship { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) private Long id; public L...

最佳 Java 编程 1402

Hibernate集合排序之内存排序

使用sort属性,我们可以通过在取回结果集后在内存中进行排序,然后返回一个经过排序的结果集合数据库结构: create table teamSort (id varchar(32),teamname varchar(32));create table studentSort (name varchar(32),team_id varchar(32));insert into tea

我的世界我的梦 3158

Hibernate映射集合属性4__排序用的order-by属性

<!-- addressSet属性,Set集合 table属性:集合表的名称 key子元素:集合外键的列名 element子元素:存放集合元素列的信息 order-by属性:写的是order by 子句,是SQL语句,是操作的集合表 这是在查询数据时指定order by子句 -->

辐_射的博客 1725

@OnetoMany关系映射的排序问题,使用注解@OrderBy

Spring里面一对多的关系可以用@OnetoMany注解来实现然后在实际使用中,如果要对从属对象按条件排序该怎么处理呢?可以用注解来实现的也就是@OrderBy来看看我的这个例子一个Product对象,里面有个OnetoMany关系对应到多张图片,然后我这个图片在后台要支持排序,所以我就在Picture这个类里面加了一个ordernum的int型字段来进行排序标记@OneToMany(casca...

superyxw的专栏 1万+

d3选择集合的操作方法(四):sort与order

sort方法只能对带有数据的元素进行排序,因此如果对页面已有的元素但没有绑定数据的元素进行排序,则需要进行预处理,order能将已排序的元素但已改变顺序的元素(如通过raise与lower方法)恢复为排序初始状态,并且性能表现更佳。 依旧假定页面中存在的html元素如下:<ul class="list-group" id="list-group"> <li class="list-grou

甘焕的博客 5195

Hibernate中的order by子句

一、概述 二、order by子句使用 public void testOrderByClause(){            String hql= " from Country as country order by country.ccode";            Session session=CustomSessionFactory.

3210
上一篇: hibernate注释
下一篇: smtp服务认证过程
光与热
博客等级 码龄11年 55粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值