hibernate对象关系映射的配置

2024-09-03 05:38

本文主要是介绍hibernate对象关系映射的配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一对一主键关联单双向
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wepull.pojo"><class name="IdCard" table="t_idcard"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- 双向配置如下 --><one-to-one name="p"></one-to-one></class>
</hibernate-mapping><hibernate-mapping package="com.wepull.pojo"><class name="Person" table="t_person"><id name="id"><generator class="foreign"><param name="property">i</param></generator>        </id><property name="name"></property><!-- person找Idcard  单向 --><one-to-one name="i" constrained="true"></one-to-one></class>
</hibernate-mapping>



一对一外键关联单双向
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wepull.pojo"><class name="IdCard" table="t_idcard"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- 双向配置    级联删除--><one-to-one name="p" property-ref="i" cascade="delete"></one-to-one></class>
</hibernate-mapping><hibernate-mapping package="com.wepull.pojo"><class name="Person" table="t_person"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- person找Idcard  单向 --><many-to-one name="i" unique="true"></many-to-one></class>
</hibernate-mapping>




一对多/多对一
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wepull.pojo"><class name="Student" table="t_student"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- 多对一配置如下 --><many-to-one name="c" class="Classes"></many-to-one></class>
</hibernate-mapping><hibernate-mapping package="com.wepull.pojo"><class name="Classes" table="t_classes"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- 一对多 --><set name="s" inverse="true"><!-- 由学生管理 --><!-- column:多的一方持有一的一方的外键字段 --><key column="c"></key><one-to-many class="Student" /></set></class>
</hibernate-mapping>



多对多单双向
<hibernate-mapping package="com.wepull.pojo"><class name="Role" table="t_role"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- 多对多 --><set name="u" table="t_user_role"><key column="r"></key><many-to-many class="User" column="u"></many-to-many></set>    </class>
</hibernate-mapping><hibernate-mapping package="com.wepull.pojo"><class name="User" table="t_user"><id name="id"><generator class="native"></generator>        </id><property name="name"></property><!-- 多对多配置如下 --><set name="r" table="t_user_role"><key column="u"></key><many-to-many class="Role" column="r"></many-to-many></set></class>
</hibernate-mapping>



Annotation注解(多对一)
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
/*** @author fcs* 不能自动删除表* 多对一单向     多方持有一方的外键* 2014-8-24*/@Entity
public class Student {private int id;private String name;private Classes c;@ManyToOne(fetch=FetchType.LAZY)//延迟加载@JoinColumn(name="cid")//修改表字段名  防止自动生成sidpublic Classes getC() {return c;}public void setC(Classes c) {this.c = c;}@Id@GeneratedValue(strategy=GenerationType.IDENTITY)//主键自增长public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}




















这篇关于hibernate对象关系映射的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po