3.1Hibernate-Collection

深入解析@OrderColumn注解及其应用实例 注解用于指定一个列,该列用于维护列表的持久化顺序。持久化提供者会维护这个顺序,并在列表插入、删除或重新排序时更新顺序。这个注解可以用于@OneToMany或关系,也可以用于。 阅读详情

1、作用在List上的@OrderColumn和@OrderBy区别

如果想要保持存入顺序与取出顺序,则需要使用。

参考:https://stackoverflow.com/questions/11433195/hibernate-orderby-vs-ordercolumn-to-maintain-the-order-of-a-collection

@OrderBy使用类中的子实体属性作为排序依据。

eg:(摘自Hibernate官方用户手册)

@Entity(name = "Person")
public static class Person {
    @Id
    private Long id;
    @OneToMany(cascade = CascadeType.ALL)
    @OrderBy("number")
    private List<Phone> phones;
 ……//setter、getter方法
}

@Entity(name = "Phone")
public static class Phone {
    @Id
    private Long id;
    private String type;
    @Column(name = "number")
    private String number;
    ……//setter、getter方法
}
使用该方法存入3个Phone,并设置到Person中的phones集合。结果如下:


使用@OrderBy时,当从数据库中查询遍历结果,查询语句会自动加上order by asc/desc

即上述案例查询语句会类似select ... order by phone.number ASC

但如果list里顺序改变,读出来的元素顺序也会改变

@OrderColumn会在表中添加一列,包含集合中保存的实体在集合里的索引,即使改变了list集合中元素顺序,Hibernate也会改变索引列的对应元素的索引值,所以读取list中元素出来顺序依旧不变。该索引与添加进list的顺序有关,与persist/save顺序无关。

此处疑点(待解决):不明确改变了list集合中元素顺序的情况是怎样,试过remove后再次添加,两者元素顺序都发生改变。使用@OrderBy与@OrderColumn均不受persist顺序影响。

2、Set(如果要保存不重复的数据,需要使用Set集合)

(1)HashSet——实体类重写equals和hashCode方法



测试结果:


(2)SortedSet——实现Comparable接口



运行上面代码会出现错误:

原因:需要加上@SortNatural注解

一个依赖于给定子元素的自然排序顺序,并且该子元素实现了Comparable 接口逻辑的SortedSet必须使用@SortNatural 注释来注释。


测试结果:

运行两次结果如下:


3、Map

    有些时候,属性的名称可能不确定、经常改变,可以通过Map的key做属性的名称、Map的value作为属性的值。

Map就是【一对多】


测试结果:

 

注解解析:

@MapKey

用于指定Map中的key的关系。当该key为标量类型(直接量)、value为自定义类型或者该key是某个实体类中的属性。

eg1:

     

eg2:

    

      


@MapKeyColumn

指定Map中key的类型

eg:

   

   




华为防火墙 策略路由实现多ISP接入Internet PC3上网访问Server1时走ISP1。PC4上网访问Server1时走ISP2。1、配置接口IP并加入相应的安全区域。二、ISP2 运营商 R2路由器。一、ISP1 运营商 R1路由器。 阅读详情

相关推荐

无网络环境部署:手动获取并安装OneNote for Windows 10完整指南

本文提供了一份详尽的OneNote for Windows 10离线安装指南。针对无网络或内网隔离环境,详细介绍了如何从官方渠道获取正确的产品ID,利用第三方工具下载纯净的.appxbundle安装包,并解决系统兼容性与依赖框架问题。最后,通过PowerShell管理员命令完成安全部署,是IT管理员和高级用户在离线环境下部署UWP应用的实用参考。

loss4bartender的博客 496

ManyToOne凭空多了很多空记录,@OrderColumn的问题

今天做一个ManyToOne的查询,Many端数据库里只有11条记录,但是查出来却显示有171条记录!而且前160条都是null,这是怎么回事? @OneToMany(cascade = CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="notice") @OrderColumn(name = "ID") public List getFi

小鹰信息技术服务部 4991

UE5与Cesium for Unreal结合:打造高效离线地图解决方案

本文详细介绍了如何利用UE5与Cesium for Unreal结合打造高效离线地图解决方案,特别适用于数字孪生、军事仿真等网络不稳定场景。通过优化配置、数据处理和性能调优,实现TB级地形数据的流畅渲染,并结合实战案例展示了在油田巡检等复杂环境中的应用效果。

weixin_29007135的博客 493

Hibernate入门(4):集合映射&amp;amp;组件映射

集合映射1、Hibernate的集合映射包含2种:①单纯的集合映射,包括List、Set、数组;②Map结构的集合映射;2、Hibernate要求使用集合接口来声明集合属性,这是因为这些集合的实际实现是使用Hibernate的内部实现映射类;3、Hibernate的集合映射实例具有值类型的行为,当持久化对象被保存时,这些集合属性会被持久化,当持久化对象被删除时,这些集合属性对应的记录会被删除;4、...

Al_assad的博客 994

手把手教你用键盘在Ubuntu上给Lerobot机械臂采集HIL-SERL训练数据(附完整配置文件)

本文详细介绍了在Ubuntu系统中使用键盘控制Lerobot机械臂进行HIL-SERL训练数据采集的完整流程。从环境准备、机械臂校准到键盘遥操系统配置和数据采集优化,提供了实战指南和常见问题解决方案,帮助读者高效获取高质量训练数据,推动具身智能和强化学习应用的发展。

weixin_30733003的博客 479

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273

hibernate参考手册之---集合类(Collections)映射

 第 6 章 集合类(Collections)映射6.1. 持久化集合类(Persistent Collections)(译者注:在阅读本章的时候,以后整个手册的阅读过程中,我们都会面临一个名词方面的问题,那就是“集合”。"Collections"和"Set"在中文里对应都被翻译为“集合”,但是他们的含义很不一样。Collections是一个超集

yangxn的专栏 834

2025浏览器指纹伪装终极指南:Playwright修改WebGL+时区+分辨率,小红书爬1000条零验证

2025年小红书的反爬已经进入“多维校验”时代,单纯修改某一个指纹维度已失效。本文方案的核心是“让所有特征都一致且合理”——WebGL+Canvas+时区+分辨率+UA+行为,形成一个完整的“真实用户画像”,让小红书的反爬系统无法区分是爬虫还是真人。这套方案不仅适用于小红书,也可迁移到知乎、抖音、跨境电商等其他高反爬平台,只需替换对应的指纹库和数据提取逻辑。记住:指纹伪装的本质不是“欺骗”,而是“模拟真实”,把每个细节都做到和人类一致,自然就能实现“零验证”爬取。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3070

Hibernate框架学习之注解映射实体类

前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识。然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射实体类的基本注解,此处做一点总结,后续文章将陆续更新使用注解的方式管理配置各种映射关联关系。本篇主要涉及以下内容: 使用最基本的注解映射一个实体类 使用注解映射属性 使用注解映射主键 其他特殊类型的...

weixin_30258027的博客 326

【vivado PG学习】1 PG168:7 Series FPGAs Transceivers官方配置方法学习笔记

介绍: The 7 series FPGAs Transceivers Wizard LogiCORE™ IP 自动创建配置7系列fpga 收发器的HDL封装。向导可以配置一个或多个支持行业主流标准的高速串行收发器。或者从零开始支持各种自定义协议。 功能: 创建配置7系列fpga 收发器的HDL封装。 自动对模拟设置进行配置。 预定义了提供Aurora 8B/10B, Aurora 64B/66B, CEI-6G,DisplayPort, Interlaken, Open Base StationAr..

w0shishabi的博客 5万+

高电压技术的面试内容整理(详细版本:57题)

涵盖了高电压技术的关键领域,包括气体放电的物理过程、液体和固体介质的绝缘特性、高压外绝缘的分类与特性、电气设备绝缘试验的方法与原理、电力系统的防雷保护措施,以及内部过电压的产生、影响与限制方法,为理解和应对高电压环境下的电气问题提供了系统的知识框架。通过深入探讨气体放电理论、介质极化与损耗、绝缘子的电气特性、绝缘试验技术、防雷策略以及内部过电压的管理。

weixin_44808274的博客 776

Hibernate3.1必须导入的包

hibernate3.jar: Hibernate的库,没有什么可说的,必须使用的jar包 cglib-2.1.3.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 asm.jar: 和cglib-2.1.3.jar有点类似 dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。do

cheney521的专栏 728

innovus:set_clock_latency与insertion_delay

当1ns clock latency设置在capture上,在report_timing报告中体现在other end arrival time以及capture clock path的Arrival Time上。因为-1ns的insertion delay存在,所以skew group报告中显示的Arrival (ns)是减1ns的结果,即1.819-1=0.819 ns。CTS阶段create_ccopt_clock_tree_spec之后,spec中会产生对应的insertion_delay命令。

m0_61544122的博客 1621

Hinernate SequencedHashMap错误 解决方法 - MyEclipse6.0.0 GA中Hibernate3或Hibernate3.1的库不好用

MyEclipse6.0.0 GA中Hibernate3或Hibernate3.1的库不好用  关键字: MyEclipse6.0.0 GA Hibernate   问题:   最近在搞SSH,用的是MyEclipse6。今天用它来给一个新工程add Hibernate Capabilities.但是部署运行项目,其间报错如下: 1.   %%%% Error Creating Ses

1364

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hibernate3 必备jar包

hibernate3.jar  Hibernate的库,没有什么可说的,必须使用的jar包 cglib-2.1.3.jar  CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 asm.jar cglib-2.1.3.jar有点类似 dom4j.jar dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom

关于代码的那些事 2592

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

hibernate-3.3.1GA包结构解释

[color=red][/color]hibernate3.3.1GA 目录结构 hibernate-distribution-3.3.1.GA ---[color=red]hibernate3.jar[/color]---lib//Hibernate的库,没有什么可说的,必须使用的jar包 ------bytecode ------optional ------required...

iteye_4600的博客 144

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

hibernate包下载 配置

1.hibernate包的下载地址,无需注册,直接下载 http://sourceforge.net/projects/hibernate/files/ 其中需要下载的是 hibernate-distribution-3.5.1-Final-dist和hibernate-annotations-3.4.0.GA(如果用annotation) 可以从上面的网站上下载,也可以从附件中下载。 ...

木南 231

Hibernate3 jar包概述

(发现用制表符能累死,直接贴包名了)hibernate3.jar :核心包,不说什么了antlr-2.7.6  :一个语言转换工具,Hibernate利用它实现 HQL 到 SQL 的转换commons-collections-3.1 : collections Apache 的工具集,用来增强Java对集合的处理能力dom4j-1.6.1 : dom4j XML 解析器jav

噬日者 1780

hibernate1

//alter user scott identified by root;jsp文件翻译成servlet后存放的路径C:\Program Files\apache-tomcat-7.0.27\work\Catalina\localhost\JSP\org\apache\jsp hibernate 是对jdbc进行轻量级封装的ORM框架,充当项目的持久层把对象持久化: 把对象的信息保存到数据库或...

weixin_30488085的博客 123

「eclipse」搭建Hibernate常见问题

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任

l1027402982的博客 273

Hibernate3.3.2核心包说明

hibernate3.jar :核心包   antlr-2.7.6   :一个语言转换工具,Hibernate利用它实现 HQL 到 SQL 的转换 commons-collections-3.1 : collections Apache 的工具集,用来增强Java对集合的处理能力 dom4j-1.6.1 : dom4j XML 解析器   javassist-3.9.0.GA

1056

Hibernate3.3.2 jar包说明

hibernate3.jar :核心包   antlr-2.7.6   :一个语言转换工具,Hibernate利用它实现 HQL 到 SQL 的转换commons-collections-3.1 : collections Apache 的工具集,用来增强Java对集合的处理能力dom4j-1.6.1 : dom4j XML 解析器   javassist-3.9.0.GA ...

Rebecca 211

Hibernate3 jar包讲解

hibernate3.jar                                                              Hibernate核心包(必要) commons-logging-1.0.4.jar                                         日志记录(必要) commons-collections-2.1.1.jar

u011474182的专栏 930
上一篇: BFPRT算法——在一个无序数组找出前k小的数
下一篇: 3.2 Hibernate-Inheritance
ack_Finding
博客等级 码龄10年 6粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值