Hibernate 之实体表关系设计

2024-08-27 21:58
文章标签 设计 关系 hibernate 实体

本文主要是介绍Hibernate 之实体表关系设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

Hibernate 之实体表关系设计

 

 

前言:

      在Hibernate 中多表之间关系如何设计?

      一般的实体设计,我们比较系统的是会用rose或EA设计好,表并且和表之间的关系。

(1)类的实体,实体中的属性


(2)每个实体类之间的关联关系

           

 

关联关系用集合,比如:部门中有很多的用户;

            


 

系统中设计步骤:

     (1) 实体中添加代码:

     按照上面例子,三个实体User,Role和Department,于实体中添加代码:

 


                    



 

 

(2)Hibernate映射中编辑:

     其实上面的所有实体和实体关系都可以用 Rose 或EA自动生成的:

     根据EA图看出实体之间关系,在Hibernate中怎么设计呢? Role,User,Department

步骤:

   第一步写注释;


   第二步代码模板;


   第三步填充代码;


模板如下:

                    

 


注意:多对一是,外键在多的一方

<!-- parent属性,本类与Department(上级)的多对一 -->
<!-- <many-to-one 
name="parent"自己属性名字    
class="Department"关联的类名    
column="parentId"关联的外键></many-to-one> --><many-to-one name="parent" class="Department" column="parentId"></many-to-one>

 

 外键总结:

    外键引用的那个列在主表中必须是主键列或者唯一列。
    (1)1
:n的肯定把外键建立在n的那张表上。


    (2)1:1,一般要看谁是主表,谁是附属表,外键当然建立在附属表中。


    (3)n:m的情况,需要建立一个关系表,两个原表和其关系分别是1:n,1:m

  

总结:

  

Hibernate中实体映射:

一,写注释

格式为:?属性,表达的是本对象于?的?关系

例如user实体中注释:“Department属性,本对象于Department的多对一”

 


二,考模板:

           

 

三,填空:

Name属性:属性名(注释中的第一问号)


Class属性:关联实体属性类型,(注释中的第二个问号)


Column属性:

   (1)<many-to-one column=”..”>:一般可以写成属性名加Id后缀,如属性为department,则column值写成:departmentId


    (2)一对多中的<keycolumn=”..”>:从关联的对方(对方多对一)映射中把column值拷贝过来。


   (3)多对多中<keycolumn=”..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId


   (4)多对多中的<many-to-manycolumn=”..”>:一般可以谢伟关联对象的名称加Id后缀。

 



这篇关于Hibernate 之实体表关系设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112895

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不