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

相关文章

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下