为什么用Hibernate时一定要做关联映射?

我用Hibernate也有半年了,感觉Hibernate的映射关系太复杂了,与懒性加载,反转控制等结合在一起,要想控制好,实非常人之所能。个人感觉,如果不用Hibernate的关联,就把它当作关系数据库来操作,使用和理解上都会方便不少,例如一个订单和产品的配置文件写成这样:
<hibernate-mapping>
<class name="db.Order" table="orders" catalog="sample">
<id name="id" type="java.lang.String">
<column name="ID" length="32" />
<generator class="uuid.hex" />
</id>
<property name="orderTitle" type="java.lang.String">
<column name="ORDER_TITLE" length="30" />
</property>
</class>
</hibernate-mapping>

<hibernate-mapping>
<class name="db.Product" table="products" catalog="sample">
<id name="id" type="java.lang.String">
<column name="ID" length="32" />
<generator class="uuid.hex" />
</id>
<property name="productTitle" type="java.lang.String">
<column name="PRODUCT_TITLE" length="30" />
</property>
<property name="orderId" type="java.lang.String">
<column name="ORDER_ID" length="32" />
</property>
</class>
</hibernate-mapping>
操作时:
Order o=new Order();
o.setOrderTitle("order1");
dao.saveOne(o);
Product p=new Product();
p.setProductTitle("product1");
p.setOrderId(o.getId());
dao.saveOne(p);
(HQL查询则仿照普通SQL中的写法,此处略)
这样一来,纯粹是用关系数据库的思想来使用Hibernate,一个类对应一个数据库表,表之间的约束交给数据库的键来控制, 这样一来,即得到了Hibernate的优点:不用手工写SQL,对象级别缓存,数据库可移植性,也不必费力地学习和理解它了,纯粹是一个薄薄的JDBC的包装; 缺点就是不能在HQL中写出"...object1.object2.object3..." 式的对象引用,而且关联表的加载要自已来维护,但我认为相对于理解它复杂的配置来说,这点牺牲还是值得的, Hibernate的高级特性当然没法用上了,但相比于直接用JDBC或用ibatis写SQL总要好得多,只要会关系数据库,就能立即上手,在新手多、工期短的项目中,可节省很多培训时间,而且对于后来维护者的要求也大大降低,请问我的这种想法是否可行?
Win10本地账户密码遗忘?巧用指纹/PIN快速重置(家庭版/专业版通用指南) 本文提供了一份详细的Win10本地账户密码遗忘自救指南,适用于家庭版和专业版用户。核心方法是利用已登录的指纹或PIN码权限,通过创建新的管理员账户或使用系统工具,安全重置遗忘的本地账户密码,无需第三方工具或重装系统,有效保护个人数据。 阅读详情

相关推荐

TensorRT(C++)部署 Pytorch模型

众所周知,python训练pytorch模型得到.pt模型。但在实际项目应用中,特别是嵌入式端部署时,受限于语言、硬件算力等因素,往往需要优化部署,而tensorRT是最常用的一种方式。本文以yolov5的部署为例,说明模型部署在x86架构上的电脑端的流程。(部署在Arm架构的嵌入式端的流程类似)。

女神sha手的博客 5409

hibernate 中每张表都必须写对应的映射对象吗?不写行吗?

hibernate 中每张表都必须写对应的映射对象吗? 不写行吗? 有的表很简单 也建个对应的Bean对象 会不会有些浪费呢? :(

zh850213的专栏 792

H.264 入门篇 - 09 (帧间预测 - 参考帧列表)

短期和长期的关系和区别:在一个解码器中的 DPB(参考帧缓存)大小总是有限的,所以引入一个问题,什么样的参考帧会被保存到 DPB 中,什么样的参考帧会被移除出去,因此将分为长期和短期参考帧,所谓短期参考帧是这帧不会长期驻留在DPB中,如果参考帧缓存已满或者有其他特定的条件,那么短期参考帧就会被从DPB中移除;与之相对的长期参考帧,只要没有遇到某个指定的条件,遇到某个IDR帧, 遇到了清空整个DPB的指令等等,那么长期参考帧会长期在DPB中,不会因为有新的参考帧而被冲刷掉;(P帧是按照编码顺序)

StephenZhou 5104

Hibernate为什么一定要做关联映射?

  我用Hibernate也有半年了,感觉Hibernate的映射关系太复杂了,与懒性加载,反转控制等结合在一起,要想控制好,实非常人之所能。个人感觉,如果不用Hibernate的关联,就把它当作关系数据库来操作,使用和理解上都会方便不少,例如一个订单和产品的配置文件写成这样:                                               操作时:  Order

drinkjava的专栏 1532

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2978

Intel RealSense D435 深度相机详解

Intel RealSense D435 深度相机是 Intel 推出的一款基于深度感知技术的相机,广泛应用于机器人、无人机、增强现实(AR)、虚拟现实(VR)、3D扫描、智能监控等领域。D435 是 RealSense 系列中较为高端的深度相机之一,结合了深度传感和 RGB 摄像技术,为用户提供高精度的深度数据和高质量的图像捕捉能力。

crasher123的博客 2949

关联映射

映射实体Bean的关联关系 一对一(One-to-one) 使用@OneToOne注解可以建立实体bean之间的一对一的关联. 一对一关联有三种情况: 一是关联的实体都共享同样的主键, 二是其中一个实体通过外键关联到另一个实体的主键 (注意要模拟一对一关联必须在外键列上添加唯一约束). 三是通过关联表来保存两个实体之间的连接关系 (注意要模拟一对一关联必须在每一个外键上添加唯一约束). 1,

w_t_y_y的博客 712

ISCC练习题MISC

解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗?

m0_62737381的博客 1120

hibernate使用关联映射的优劣比较:为什么用Hibernate时一定要做关联映射?

http://drinkjava.javaeye.com/blog/82107?page=2#comments读过上文以后有很多感慨:技术上的、心情上的。作者提出了一种迥异的、全新的hibernate使用方法。可是如果都这样做系统,那还怎么显示出对OR精通的各位牛人的价值呢?怎么能21世纪还是用ER模型呢? 所以作者的文章当然得不到javaeye各位"大拿"、“主流”的承认

凤影的专栏 3674

MuJoCo新手必看:5分钟搞定你的第一个机器人仿真(附Python代码)

本文为零基础新手提供了一份详尽的MuJoCo物理仿真引擎入门指南。从环境搭建、MJCF模型文件解析,到编写Python控制代码,手把手教你5分钟内创建并运行第一个机器人仿真。内容涵盖双摆模型控制与自定义四轮小车构建,帮助你快速掌握这一高性能开源工具,迈出机器人学与强化学习仿真的第一步。

weixin_29032489的博客 656

CDD数据库文件制作(十一)——服务配置(0x19_DTC Code)

虽然选择Copy和Reference都可以加载DTC,但是如果我们在DTC库中有修改DTC,通过Copy的方式加载的DTC在DTC Table中不会跟着DTC库的修改而自动更新。通过Reference的方式加载的DTC可以自动更新。找到Fault Memory的DTC Table,鼠标放在DTC Table区域,右键点击选择Copy …根据需要(客户协议)勾选响应的19服务子功能。如何创建一个新的DTC code?按照字母与下方要素可做一一对应。首先在DTC库中新建DTC。支持10 01/10 03。

LOVE135149的博客 1917

在测试Hibernate的一对多双向关联映射时

<br />在测试Hibernate的一对多双向关联映射时,碰到很有趣的问题,跟inverse属性直接相关。<br />1、People.hbm.xml<br /><hibernate-mapping default-lazy="false"> <br /><class name="com.persistent.People" table="people"> <br /><id name="id" column="peopleId" unsaved-value="0"> <br /><generator c

java 594

3. UFS 电气时钟、复位、信号和电源

当接收到用于从 HS-MODE 到 LS-MODE 转换的 DME_POWERMODE.ind 或用于从 HS-MODE 到 HIBERN8 转换的 DME_HIBERNATE_ENTER.ind 时,UFS 主机可以启动一个计时器。在整个 PA_INIT 过程中,不应门控参考时钟。如果 UFS 主机启动从 HS-MODE 到 LS-MODE 或 HIBERN8 的电源模式更改,则应确保在关闭参考时钟之前,至少已经经过了由 bRefClkGatingWaitTime 定义的最小时间间隔,见图 6.3。

qq_42238448的博客 1293

hibernate用关联映射时,Set集合如何按指定属性排序

一.问题场景:场景:我有一套试卷试卷(examination表中)里有好多题目(question表中),题目有A,B,C,D 选项。建立类 Examination类中有 @OneToMany(targetEntity = Question.class, cascade = CascadeType.REMOVE, mappedBy = "examination", fetch = FetchTyp

hanghangde的博客 1903

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

Hibernate:many-to-many(多对多)关联映射详解

多对多关联映射的实现和使用

SirouW的博客 1767

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Hibernate】——多对多关联映射

对比单向和双向关联映射,可以从查询加载的地方看出二者的不同,单向关联映射只能从循环遍历用户获得角色,但是双向关联映射既可以循环遍历用户获得角色,也可以循环遍历角色获得用户。 需要注意的是<key>中的column对应的是当前类在中间表中对应的字段,即对方想要的外键,而<many-to-manyclass="com.bjpowernode.hibernate.Role"column="role_id"/>中的column指示的是中间表中本类想要的外键。还要注意的是inverse的值只能

许小乖……是总攻 928

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Hibernate框架-04-01-Hibernate 一对一关联映射 hbm文件形式配置

文章目录 联系(Relationship) 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。 实体间联系可分为: 一对一联系(1:1);  一对多联系(1:n); 多对多联系(m:n)。 这两种方式都需要创建外键。 person表里存储user表对应的ID; 两张表的主键是一样的。 ...

异侠 455

【Hibernate教程】单向多对一、一对多的关联映射

一、单向多对一的关联映射 1、Student类 2、Grade类 3、Student.hbm.xml 4、Grade.hbm.xml 5、HibernateTest 6、数据库 二、单向一对多的关联映射 1、Student类 2、Grade类 3、Student.hbm.xml 4、Grade.hbm.xml 5、Hiber

程序员云帆哥的博客 1万+

Hibernate多对多关联映射的HQL中的in条件查询问题

Hibernate多对多关联映射的HQL中的in条件查询问题 群里有朋友求解一个问题,高分求一条HQL多对多查询语句 。 问题描述见 http://topic.youkuaiyun.com/u/20090621/16/4eac6fe0-bf3e-422e-a697-f7584732f66e.html,摘要如下: 一个学科表(Field),一个用户表(User),多对多关系。  学科表有两个

K2Fibre 3331

Hibernate 一对一关联映射,mappedBy参数解析

在最近java,SSH框架的学习中遇到了这样的一个问题,在Hibernate的开发中一对一关联映射的单向关联,主表会在次表新增一列次表的主键如下图,但是在双向关联中次表不会在表中创建主表的主键一列,这是为什么呢 ,原来是因为mappedBy参数的原因,在不给这个参数时次表会创建主表主键的一列,sql语句也会增多,而设置了这个参数时,次表不会创建主表主键的一列,sql语句也会少,在以后的项目中一定...

weixin_30760895的博客 250

hibernate多对多关联映射(单项关联)

hibernate多对多关联映射(单项关联)user--->role 映射规则:

llying 123

第 2 章 hibernate关联映射 【hibernate部分】

  一)为什么要学习hibernate关联映射?         ①.    面向对象的数据和关系型数据都存在“关联”这种特性。客观上需要将这种特性在ORM时进行映射。         ②.    配置了关联映射可以更大限度地简化编码,使我们在编写程序时可以完全按照面向对象的方式进行思考和实现。   二)各个映射都用在什么情况下?              常用的关联关系有:one -...

你的时间在哪里,你的成就就在哪里 158

对《深入浅出hibernate》一书中one-to-one主键关联映射疑惑

这两天在研究hibernate,发现&lt;&lt;深入浅出hibernate&gt;&gt;一书挺好,清晰易懂,只是在看到one to one 主键关联映射的地方,有些疑惑。   关系模型是这样的,很简单,如下:   T_Person id  number(11) &lt;pk,fk&gt; name varchar2(50) age number(3) ..... ...

sunchenjava的专栏 202

Hibernate使用Gson时报错:org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?

Hibernate使用Gson时报错:org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter? 主要是使用Hibernate查询的实体类有多对一的关系,Hibernate默认延迟加载,不会查询关联的实体一方,只有实际使用的时候才进行查询,导致Gson转Json时报错 改善方法: 一对多配置文件中加入

java_raylu的博客 2096

Hibernate:one-to-one(一对一)关联映射详解

对one-to-one关联映射进行详细的叙述

SirouW的博客 3021
下一篇: Hibernate为什么一定要做关联映射?
drinkjava
博客等级 码龄19年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值