Hibernate关联关系通俗口诀以及模板配置

一.一对一

1.口诀:

首先明了外或主

若是外则唯一多

多中属性油腻克(unique)

若是主则约束主

一中属性坑死德(constrained)

油先生和坑先生

两者皆对大欢喜(true)

2.一对一(基于外键的一对一)

1.1无外键方:

<one-to-one name=" " class=" " property-ref=" "></one-to-one>

1.2有外键方:就是多对一加上唯一性约束

<many-to-one name=" " class=" " column=" " unique="true"/>

1.3解释:

name:对应实体类中的属性名,如id,name,description

class:所映射对方类的完整全名

property-ref:对方映射中表达此一对一的属性

column:有外间方的外键在数据库表中的名字

unique:唯一性约束

3.一对一(基于主键的一对一)

2.1无外键方:

<one-to-one name=" " class=" " property-ref=" "></one-to-one>

与基于外键方一样。

2.2有外键方:采用一对一的映射

<id name="id" >

<generator class="foreign">

<param name="property">XXXX</param>

</generator>

</id>

<one-to-one name="XXXX" class=" " constrained="true"></one-to-one>

2.3解释:

constrained:默认为false,表示不在主键列上加上外键约束,true表示要加上外键约束

XXXX:类中所要映射的属性

二.一对多

1.口诀:

共同映射用最多

一对多来上集合

多对一来上属性

一对多欲弃江山

反转一改抱美人

2.一对多方(共同映射)

<set name=" " inverse=" ">

<key column=" "></key>

<one-to-many class=" "/>

</set>

3.多对一方(共同映射)

<many-to-one name=" " class=" " column=" "/>

4.解释:

name:类中所要映射的属性

inverse:反转,代表本方是否放弃对关系的维护,默认为fasle,true是确定放弃

key-column:为多的一方的外键列设置名字,一般是已方类的小写,与many中的column名字要一致

one-to-many-class:一的一方的全名

many-to-one-class:多的一方的全名

5.单方映射

5.1单向多对一:单向的多对一是由需求产生的。是人为的设定的。

只在多的一方进行配置:

<many-to-one name=" " column=" "cascade=" "/>

cascade:级联,被关联的对象和本对象具有相同的操作,默认值为none,表示没有级联。

有以下几个值和状态:

save-update:对本对象做save()、update()、或saveOrUpdate()时,对这个关联对象也做saveOrUpdate()操作

delete:对本对象做delete()时,对这个关联对象也做delete()操作。

delete-orphan:当关联的对象移除与本对象的关系时,就成了孤儿,就会被删除(注意,只会删除本Session中

新产生的孤儿对象)。

all:所有的级联,但不包括删除孤儿。

all-delete-orphan:所有的级联,包括删除孤儿。

5.2单向一对多:单向的一对多是由需求产生的。是人为的设定的。

他的映射原理和单向一对多是一样的,都是在多的一端加入一个外键,指向一的一端。

只在一的一方配置:

<one-to-many class=" "/>

三.多对多

1.口诀:

九阴九阳威力同

互相结合大圆满

若想进行自阉割

反转必是绝情刀

2.多对多(对称)

两边都是同样的配置模板,只是填空不一样

<set name=" " table=" " inverse=" ">

<key column=" "></key>

<many-to-many class=" " column=" " ></many-to-many>

</set>

3.解释:

name:本类中存放对方的集合属性

table:双方共用的中间表,表名必须一致

inverse:只能有一方使用,任何一方都可以,看具体需求

class:映射的对方类的全名

column:映射的对方类中的外键名,一般是已类名称的小写

时间: 2024-10-26 20:46:32

Hibernate关联关系通俗口诀以及模板配置的相关文章

Hibernate关联关系映射(单向篇)

Hibernate关联关系可分为单向关联和双向关联两大类.单向关联可以分为一对一.一对多.多对一和多对多4种关联方式,而多向关联可以分为一对一.一对多和多对多3种关联方式. Hibernate连接管理类HibernateUtil.java public class HibernateUtil { private static SessionFactory sessionFactory; private static final ThreadLocal<Session> threadLocal

Hibernate关联关系的CRUD

本文以Group和User(一对多.多对一)双向关联为例,介绍关联关系的CRUD   下面先介绍两个属性 cascade:只影响CRUD中的CUD,即存储(save).更新(update).删除(delete) fetch:只影响CRUD中的R,即读取(get.load)   cascade(级联): 此属性仅仅帮助我们简化编程,不是必选项 如果A和B为单向关联,则在主导方设置cascade属性 如果A和B为双向关联,则在双方都要设置cascade属性 如果两个对象之间有关联关系,比如User和

深入浅出Zabbix 3.0 -- 第七章 模板配置与管理

第七章  模板配置与管理 我们在主机中不仅可以添加很多需要监控的指标(即监控项),还可以添加图形.触发器.监控项组.展示屏.Web scenarios和low-level Discovery,如果在每个主机中添加这些对象,尤其是在一个大型环境中,其工作量是不可想象的,何况需要监控的主机有很多具有相同的监控属性,需要重复相同的配置工作,如果手工完成这些配置任务几乎是不可能的.好在Zabbix为我们提供了模板,通过在不同的模板中添加监控项.触发器.图形等配置并应用到任意数量的主机上.当然对于特殊的监

hibernate框架在eclipse下的配置方法(一)

一.ORM O:object 对象 R:Realtion 关系(关系型数据库) M:Mapping 映射 ORM:对象关系型映射 目前流行的编程语言,如Java.C# ,它们都是面向对象的编程语言,而目前主流的数据库产品例如Oracle.DB2等,依然是关系型数据库.编程语言和底层数据库发展的不协调(阻抗不匹配,例如数据库中无法直接实现存储继承.多态.封装等特征和行为),催生出了ORM框架.ORM框架可以作为面向对象语言和关系型数据库之间的桥梁. 二.Hibernate Hibernate是一个

node 渲染html模板配置

node 渲染html模板配置 安装swig模块 npm install swig--save - dev 加载swig模块 var swig = require('swig'); 模板配置 //第一个参数:模板引擎的名称,同时也是模板文件的后缀,第二个参数解析模板内容的方法 app.engine('html', swig.renderFile); //设置文件存放目录,第一个参数必须是views,第二个参数是目录 app.set('view engine', 'html'); //在开发过程中

2018.10.6 Hibernate配置文件详解-------ORM元数据配置 &amp;&amp;&amp; hibernate主配置文件

ORM既然是实体与关系数据库的映射,那就需要建立实体和关系数据库之间的基础数据,也可以称为元数据.简单的说就是表示类与表.列与属性(get.set方法)等等之间对应关系的数据. Customer.hbm.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Configuration DTD

jeecg入门操作—模板配置(录入界面)

点击online表单的模板配置,进入模板设计列表页面,点击创建模板 点击创建模板 点击激活 设计完成,点击激活(表单模板可以多个,激活状态只能有一个) 激活后,重新加入功能测试,点击添加页面,效果如下: 原文地址:https://www.cnblogs.com/dyh004/p/10703744.html

Hibernate关联关系配置(一对多、一对一和多对多)

第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系. 一对多:从消费者角的度来说一个消费者可以有多个订单,即为一对多. 多对一:从订单的角度来说多个订单可以对应一个消费者,即为多对一. 一对多关系在hbm文件中的配置信息: 消费者(一方): <?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC

hibernate 关联关系(多对一、多对多、一对一)的配置

1:多对一 一般关系由多的一方来维护 多的一方需要有一方的字段,一的一方要有多的一方的set集合 一方的配置文件: ClientEntity为一的一方,OrderEntity为多的一方 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hiberna