我的见解之hibernate(十一)

Hibernate——建立第一个hibernate项目 背景:今天学习了考研内容。 阅读详情

映射具有继承关系的两个表:

person和student可以看出,student继承自person,在映射文件中我们有三种表现形式

①.父子同表,但是要添加辨别者列

<span style="font-size:24px;"><hibernate-mapping package="com.jiangtao.hibernate.subclass">

    <class name="Person" table="PERSONS" discriminator-value="PERSON">

        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>
        
        <!-- 配置辨别者列 -->
	<discriminator column="TYPE" type="string"></discriminator>

        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        
        <property name="age" type="int">
            <column name="AGE" />
        </property>
        
        <!-- 映射子类 Student, 使用 subclass 进行映射 -->
        <subclass name="Student" discriminator-value="STUDENT">
        	<property name="school" type="string" column="SCHOOL"></property>
        </subclass>
        
    </class>
</hibernate-mapping></span>

* 缺点:
     * 1. 使用了辨别者列.
     * 2. 子类独有的字段不能添加非空约束.
     * 3. 若继承层次较深, 则数据表的字段也会较多.
* 查询:
     * 1. 查询父类记录, 只需要查询一张数据表
     * 2. 对于子类记录, 也只需要查询一张数据表

* 插入操作:
     * 1. 对于子类对象只需把记录插入到一张数据表中.
     * 2. 辨别者列有 Hibernate 自动维护.


②父子不同表,字表中只有属于自己的字段

joined-subclass

<span style="font-size:24px;"> <joined-subclass name="Student" table="STUDENTS">
        	<key column="STUDENT_id" not-null="true"></key>
        	<property name="school" type="string" column="SCHOOL"></property>
        </joined-subclass></span>
* 优点:
     * 1. 不需要使用了辨别者列.
     * 2. 子类独有的字段能添加非空约束.
     * 3. 没有冗余的字段.
* 查询:
     * 1. 查询父类记录, 做一个左外连接查询
     * 2. 对于子类记录, 做一个内连接查询.
* 插入操作:
     * 1. 对于子类对象至少需要插入到两张数据表中.


③父子各自都有自己的表,字表有完整字段,冗余严重

union-class

<span style="font-size:24px;"><union-subclass name="Student" table="STUDENTS">
			<property name="school" column="SCHOOL" type="string"></property>
		</union-subclass> </span>

 * 优点:
     * 1. 无需使用辨别者列.
     * 2. 子类独有的字段能添加非空约束.
     *
     * 缺点:
     * 1. 存在冗余的字段
     * 2. 若更新父表的字段, 则更新的效率较低

 * 查询:
     * 1. 查询父类记录, 需把父表和子表记录汇总到一起再做查询. 性能稍差.
     * 2. 对于子类记录, 也只需要查询一张数据表

* 插入操作:
     * 1. 对于子类对象只需把记录插入到一张数据表中.

子类实例的数据仅保存在子类表中, 而在父类表中没有任何记录
在这种映射策略下,子类表的字段会比父类表的映射字段要多,因为子类表的字段等于父类表的字段、加子类增加属性的总和
在这种映射策略下,既不需要使用鉴别者列,也无须使用 key 元素来映射共有主键.
使用 union-subclass 映射策略是不可使用 identity 的主键生成策略, 因为同一类继承层次中所有实体类都需要使用同一个主键种子, 即多个持久化实体对应的记录的主键应该是连续的. 受此影响, 也不该使用 native 主键生成策略, 因为 native 会根据数据库来选择使用 identity 或 sequence.


信道估计准则演进:从LS、MMSE到LMMSE的工程权衡 本文深入探讨了信道估计准则的演进历程,从LS、MMSE到LMMSE的工程权衡。通过对比分析三大经典算法的数学本质、工程实现及适用场景,揭示了在计算复杂度、实时性和性能之间的关键取舍。文章结合4G/5G基站项目实战经验,提供了算法选型的三维决策模型和前沿发展建议,为无线通信系统设计提供实用指导。 阅读详情

相关推荐

SAP CO-PA数据传送避坑指南:销售开票与FI/MM记账的日常配置实操(含KEKF/KE4I/KEI2)

本文深入解析SAP CO-PA数据传送中的常见配置问题,特别是销售开票与FI/MM记账环节的实操避坑指南。通过KEKF/KE4I/KEI2等关键配置点的详细说明,帮助用户避免数据失真和重复记录,提升获利能力分析的准确性。文章结合实战案例,揭示官方文档未提及的'数据黑洞'形成机制,为SAP顾问提供实用的排雷手册。

weixin_26905487的博客 391

我的见解之hibernate(五)

Session的方法 save():使一个临时对象转变为持久化对象,先放入session缓存中,在flush的时候执行一条insert语句,插入数据库。如果在指定了OID的生成方式时,new出对象并尝试给id赋值,也没用,数据库本地依旧采用给定的方式生成主键 News news = new News("JAVA","guo",new Date()); news.setId(50000);

Java_Soldier的博客 7666

Linux命令行入门:从零掌握服务器运维与Shell脚本基础

在信息化时代,操作系统是数字世界的基石,而终端命令行则是高效驾驭服务器的核心技能。无论是软件部署、服务监控还是故障排查,掌握基于Shell的指令操作都能大幅提升工程效率。从最基础的文件目录管理、文本处理,到权限控制、进程监控与网络调试,命令行提供了一套强大且可自动化的操作范式。尤其对于运维工程师和开发者而言,理解管道、重定向以及脚本化任务,意味着将重复劳动转化为可复用的自动化流程。本文从环境准备讲起,系统梳理常用Linux命令的实际场景与输出验证,并延伸至Shell脚本编写与定时任务,帮助初学者快速建立从操

weixin_30522983的博客 258

我的见解之hibernate(八)

内容:详解*.hbm.xml关系映射配置文件 hibernate-mapping     类层次:class     主键:id     基本类型:property     实体引用类: many-to-one  |  one-to-one     集合:set | list | map | array     one-to-many     many-to-many     子

Java_Soldier的博客 7752

【回归预测】GRNN广义回归神经网络-MATLAB

广义回归神经网络(GRNN)是一种基于径向基函数(RBF)的神经网络模型,主要用于非线性回归任务。与传统的回归分析方法相比,GRNN具有更强的非线性映射能力和学习速度,能够快速逼近复杂的非线性关系。输入层、模式层、求和层和输出层。输入层接收输入数据,模式层通过径向基函数将输入映射到高维空间,求和层对模式层的输出进行加权求和,最后输出层生成预测结果。GRNN的核心思想是利用高斯核函数计算输入与训练样本之间的相似度,然后根据相似度加权平均得到预测值。

2303_77200324的博客 1093

GD32F470实战:如何用EXMC+SDRAM搞定LVGL大内存需求(附完整代码)

本文详细介绍了如何在GD32F470微控制器上通过EXMC接口驱动外部SDRAM,以满足LVGL图形库的大内存需求。内容涵盖硬件连接、EXMC时序配置、轻量级内存管理器实现,以及将LVGL帧缓冲和资源无缝集成到SDRAM的实战方法,并提供了完整的代码示例和调试技巧,帮助开发者构建稳定可靠的嵌入式GUI系统。

k9l0m1的博客 443

关于hibernate的见解

Hibernate:     什么是hibernate:         Hibernate它是一个轻量级的jdbc封装,也就是说,我们可以使用hibernate来完成原来我们使用jdbc完成操作,就是与数据库的交互操作。它是在dao层去使用的。         对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping)   

github_39191620的博客 523

ptrade量化策略之沪深300指数增强

本策略的核心是在沪深300股票池中选股,选择的股票都是市值比较大,业绩比较好的白马股,根据市场相对位置以及基本面因子来选择股票

qq_29301281的博客 1192

我的见解之hibernate(七)

hibernate.cfg.xml的一些配置        10 5 2 2000 2000 10 100 30 hibernate.jdbc

Java_Soldier的博客 7817

GD32F4系列定时器正交译码器实战:用TIMER1读取旋转编码器信号(附完整代码)

本文详细介绍了GD32F4系列定时器正交译码器的实战应用,重点讲解如何使用TIMER1模块高效读取旋转编码器信号。内容涵盖硬件连接、定时器配置、方向判断与速度计算等关键环节,并提供了完整的代码实现和优化建议,帮助开发者快速掌握GD32微控制器在工业控制和消费电子领域的编码器接口设计。

weixin_29169505的博客 203

【网络】Ikuai中如何添加/更换虚拟机(图文)

Ikuai 添加虚拟机教程

qq_20623849的博客 6543

我的见解之hibernate(九)

Hibernate 把持久化类的属性分为两种: 值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期 实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期 显然无法直接用 property 映射 pay 属性 Hibernate 使用 元素来映射组成关系, 该元素表名 pay 属性是 Worker 类一个

Java_Soldier的博客 7529

《open3D+pyqt》点云读取、显示与保存

《open3D+pyqt》第一章:点云读取与显示一、效果展示二、环境配置三、代码3.1 qt designer设置3.2 生成ui,qrc的py文件3.3 py文件代码 一、效果展示 二、环境配置 环境配置:Anconda+pycharm+pyqt+open3d+pyqtgraph 显示界面:这里选择pyqtgraph 参考网上教程 三、代码 3.1 qt designer设置 界面布局参照《PCL+QT》教程,界面设置:布局如下: 布局参数参考: 3.2 生成ui,qrc的py文件 3.3 py

阁楼 7116

我的见解之hibernate(三)

通过Session操纵对象 Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法. Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应. Session 能够在某些时间点, 按照缓存中对象的变化来执行相关的 SQL 语句, 来同步更新数据库, 这一过程被称

Java_Soldier的博客 3033

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

我的见解之hibernate(十三)

HQL检索方式 HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. 它有如下功能: 在查询语句中设定各种查询条件 支持投影查询, 即仅检索出对象的部分属性 支持分页查询 支持连接查询 支持分组查询, 允许使用 HAVING 和 GROUP

Java_Soldier的博客 7695

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Hibernate简单得见解

Hibernate.cfg.xml  连接数据库用的  设置数据库方言(dialect)  设置数据库驱动  可设置展示sql以日志形式展示(show_sql) 并且格式化输出sql(format_sql)  更直观可读性高   设置会话的管理方式(和线程进行绑定)指定当前session范围和上下文由谁来跟踪管理   Hibernate中的实体类我觉得很有必要实现Serializable接口 ...

Mr_ZhangAdd的博客 319

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

我的见解之hibernate(六)

通过 Hibernate 调用存储过程 Work 接口: 直接通过 JDBC API 来访问数据库的操作 Session 的 doWork(Work) 方法用于执行 Work 对象指定的操作, 即调用 Work 对象的 execute() 方法. Session 会把当前使用的数据库连接传递给 execute() 方法.

Java_Soldier的博客 7616

json+hibernate死循环问题的一点见解

Method public java.lang.String org.apache.commons.lang.exception.NestableRuntimeException.getMessage(int) threw an exception when invoked on net.sf.json.JSONException: There is a cycle in the hierarch

lkl713的专栏 6194

我的见解之hibernate(四)

站在持久化的角度, Hibernate 把对象分为 4 种状态: 持久化状态, 临时状态, 游离状态, 删除状态. Session 的特定方法能使对象从一个状态转换到另一个状态. 临时对象(Transient): 就是我们new的就是临时状态,他还没有OID 在使用代理主键的情况下, OID 通常为 null 不处于 Session 的缓存中 在数据库中没有对应的记录

Java_Soldier的博客 7631

Hibernate入门第十一讲——Hibernate的多对多关联映射

在上一讲中,已经讲解过Hibernate中的一对多关联映射了,现在在其基础上,我们来讲解一下Hibernate中的多对多关联映射。 环境搭建 创建表 这里我们以用户(User)与角色(Role)为例来讲解Hibernate关联映射中的多对多关联关系,因此我们要在数据库下新建三张表——用户表、角色表以及中间表,这里笔者使用的数据库是MySQL。 CREATE TABLE `sys_user` ( ...

李阿昀的博客 1479

关于hibernate的一点见解

用了hibernate开发项目已经很久了,尤其是delete(Object obj)方法,我个人一直认为delete只能删除persist状态的对象,正如api所说:voiddelete(Object object)           Remove a persistent instance from the datastore.不过今天我无意之中,使

zcl198715的专栏 508

我的见解之hibernate(十)

映射双向n-1关系: 举个简单的例子,顾客和订单的关系,一个顾客可以拥有多个订单,而多个订单可以同时属于一个顾客,这就是双向n-1关系, 在Customer一端,需要持有装载着Order集合的引用 /* * 1. 声明集合类型时, 需使用接口类型, 因为 hibernate 在获取 * 集合类型时, 返回的是 Hibernate 内置的集合类型, 而不是 JavaSE 一个标准的

Java_Soldier的博客 7481

我的见解之hibernate(二)

下面补全对上篇文章第四步的几个变量解析 SessionFactory sessionFactory = null;   Configuration configuration = new Configuration().configure();  ServiceRegistry serviceRegistry = new S

Java_Soldier的博客 3083

我的见解之hibernate(十二)

hibernate的检索策略 检索数据时的 2 个问题: 不浪费内存:当 Hibernate 从数据库中加载 Customer 对象时, 如果同时加载所有关联的 Order 对象, 而程序实际上仅仅需要访问 Customer 对象, 那么这些关联的 Order 对象就白白浪费了许多内存. 更高的查询效率:发送尽可能少的 SQL 语句 类级别的检索策略 类级别可选的检索策略包括立即检索

Java_Soldier的博客 7283

UFS Hibernate介绍--代码部分

一 . UFS Hibernate简介

guozhidixian的博客 3858

UFS Hibernate介绍--协议部分

一. UFS Hibernate 简介 Hibernate是一种Unipro的状态,这个Hibernate 进出的流程是在M-PHY定义的。 Hibernate 是一种 UniPro 状态,其中 PHY 处于 HIBERNATE_STATE,UniPro 堆栈保持 只有最小的一组功能处于活动状态。 UniPro 堆栈保留每个堆栈层定义的最小状态。 在休眠期间,UniPro 堆栈无法进行应用级数据传输/通信, 并且应用程序级接口的原语 T_CO_SAP 具有未定义的行为。 中 休眠,DME 继续可供 DM

guozhidixian的博客 3942
上一篇: 我的见解之hibernate(十)
下一篇: 我的见解之hibernate(十二)
Java_Soldier
博客等级 码龄10年 27粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值