分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Hibernate映射关系配置(三)

发布时间:2023-09-06 01:13责任编辑:郭大石关键词:配置Hibernate

一对一单向(外键映射):

Bean:

public class Card implements Serializable{ ???private int id ; ???????private int num ; ???????private Person person ; ???????....}public class Person implements Serializable { ???????private int id ; ???????private String name ; ???????....}

Xml:

Card.hbm.xml:<class name = "Card"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<!-- property是用来把类中的属性和表的字段做一一对应 --> ???????<property name="num" /> ???????????????<!-- many-to-one 唯一的创建新的字段的标签 ????????????name是Car中一的一方的属性 ????????????column 表示name对应到表中的外键是什么名字 ???????--> ???????????????<many-to-one name="person" column="pid" unique="true" cascade="all"/> ???????????</class>Person.hbm.xml:<class name = "Person"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<property name="name" /> ???</class>

annotation:

@Entitypublic class Card implements Serializable{ ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???} ???????@ManyToOne ???@JoinColumn(name="pid",unique=true) ???public Person getPerson() { ???????return person; ???}}@Entitypublic class Person implements Serializable { ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???}}

一对一双向(外键映射):

Xml:

Card.hbm.xml:<class name = "Card"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<!-- property是用来把类中的属性和表的字段做一一对应 --> ???????<property name="num" /> ???????????????<!-- many-to-one 唯一的创建新的字段的标签 ????????????name是Car中一的一方的属性 ????????????column 表示name对应到表中的外键是什么名字 ???????--> ???????????????<many-to-one name="person" column="pid" unique="true" cascade="all" /> ???????????</class>Person.hbm.xml:<class name = "Person"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<property name="name" /> ???????????????<one-to-one name="card" property-ref="person"/> ???</class>

annotation:

@Entitypublic class Card implements Serializable{ ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???} ???????@ManyToOne ???@JoinColumn(name="pid",unique=true) ???public Person getPerson() { ???????return person; ???}}@Entitypublic class Person implements Serializable { ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???} ???????????????@OneToOne(mappedBy="person") ???public Card getCard() { ???????return card; ???}}

一对一单向(主键映射):

xml:

Card.hbm.xml:<class name = "Card"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="foreign"> ???????????????<param name="property">person</param> ???????????</generator> ???????</id> ???????<!-- property是用来把类中的属性和表的字段做一一对应 --> ???????<property name="num" /> ???????????????<!-- many-to-one 唯一的创建新的字段的标签 ????????????name是Car中一的一方的属性 ????????????column 表示name对应到表中的外键是什么名字 ???????--> ???????????????<one-to-one name="person" constrained="true" /> ???????????</class>Person.hbm.xml:<class name = "Person"> ???????<!-- id是来配置主键 ?????????????name是类中的哪个属性和主键映射 ????????????generator:表示主键的生成策略 ???????--> ???????<id name = "id"> ???????????<generator class="native" /> ???????</id> ???????<property name="name" /> ???</class>

annotation:

public class Card implements Serializable{ ???????//主键来自Person的主键 ???????@OneToOne ???@PrimaryKeyJoinColumn ???public Person getPerson() { ???????return person; ???}}@Entitypublic class Person implements Serializable { ???????@Id @GeneratedValue ???public int getId() { ???????return id; ???}}

Hibernate映射关系配置(三)

原文地址:http://www.cnblogs.com/hyl-home/p/7576934.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved