Hibernate中持久化类学习

本文介绍Hibernate ORM框架的应用实践,包括实体类的设计规范、OID的概念及其重要性、主键的生成策略选择等内容。深入探讨如何通过合理配置提升应用性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1   编写规则

•    提供一个无参数 public访问控制符的构造器【能让Hibernate用反射来封装返回对象】

•    提供一个标识属性,映射数据表主键字段 Hibernate标识对象的唯一依据就是id

•    所有属性提供public访问控制符的 set  get 方法(JavaBean)【属性是来自Javabean的,成员变量拥有了get set方法才能被称为属性】

•    标识属性应尽量使用基本数据类型的包装类型【包装相比基本数据类型操作起来省事。】

•    不要用final修饰实体 (将无法生成代理对象进行优化)

1.2   持久化对象的唯一标识 OID

1、Java按地址区分同一个类的不同对象.

2、关系数据库用主键区分同一条记录

3、 Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系

结论: 对象的OID和数据库的表的主键对应。为保证OID的唯一性,应该让Hibernate来为OID赋值【而不是手动给OID赋值】

1.3   区分自然主键和代理主键

 主键需要具备:不为空/不能重复/不能改变【主键是不能被修改的!!】

              自然主键:      在业务中,某个属性符合主键的三个要求.那么该属性可以作为主键列.

              代理主键:    在业务中,不存符合以上3个条件的属性,那么就增加一个没有意义的列.作为主键.

1.4   基本数据与包装类型

基本数据类型和包装类型对应hibernate的映射类型相同

基本类型无法表达null、数字类型的默认值为0。

包装类默认值是null。当对于默认值有业务意义的时候需要使用包装类。


1.5   普通属性

分析:User.hbm.xml文件:ORM元数据表对象关系映射文件

1package属性:配上包名,下面的class name就不必写全路径名称了。

2class属性:类与表的对应。

3dynamic-insert属性:动态插入。默认值是false如果对象的某一个值没有设置,又不想把默认值插入到数据库(浪费资源),这时候把属性设置为true,就只插入有值的字段。【一般开发的时候不太用,提高的效率有限。】

4dynamic-update:动态刷新。update有改动的地方,可以提高性能。


1.6   主键

主键生成策略:可供选择的有7个策略。

        1.increment 数据库自己生成主键. 先从数据库中查询最大的ID值,将ID值加1作为新的主键

        2.identity  依赖于数据的主键自增功能

        3.sequence  序列,依赖于数据中的序列功能(Oracle).

        4.hilo(纯了解,永远用不到) : Hibernate自己实现序列的算法,自己生成主键. (hilo算法 )

        5.native 自动根据数据库判断,三选一. identity|sequence|hilo

        6.uuid  生成32位的不重复随机字符串当做主键【使用uuid生成算法】【使用这个uuid,还得把表的id改成String类型。】

        7.assigned 自己指定主键值. 表的主键是自然主键时使用.


内容概要:本文档详细介绍了一个基于MATLAB实现的跨尺度注意力机制(CSA)结合Transformer编码器的多变量时间序列预测项目。项目旨在精准捕捉多尺度时间序列特征,提升多变量时间序列的预测性能,降低模型计算复杂度与训练时间,增强模型的解释性和可视化能力。通过跨尺度注意力机制,模型可以同时捕获局部细节和全局趋势,显著提升预测精度和泛化能力。文档还探讨了项目面临的挑战,如多尺度特征融合、多变量复杂依赖关系、计算资源瓶颈等问题,并提出了相应的解决方案。此外,项目模型架构包括跨尺度注意力机制模块、Transformer编码器层和输出预测层,文档最后提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,尤其是熟悉MATLAB和深度学习的科研人员、工程师和研究生。 使用场景及目标:①需要处理多变量、多尺度时间序列数据的研究和应用场景,如金融市场分析、气象预测、工业设备监控、交通流量预测等;②希望深入了解跨尺度注意力机制和Transformer编码器在时间序列预测中的应用;③希望通过MATLAB实现高效的多变量时间序列预测模型,提升预测精度和模型解释性。 其他说明:此项目不仅提供了一种新的技术路径来处理复杂的时间序列数据,还推动了多领域多变量时间序列应用的创新。文档中的代码示例和详细的模型描述有助于读者快速理解和复现该项目,促进学术和技术交流。建议读者在实践中结合自己的数据集进行调试和优化,以达到最佳的预测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值