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

相关文章

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

使用Python实现网络设备配置备份与恢复

《使用Python实现网络设备配置备份与恢复》网络设备配置备份与恢复在网络安全管理中起着至关重要的作用,本文为大家介绍了如何通过Python实现网络设备配置备份与恢复,需要的可以参考下... 目录一、网络设备配置备份与恢复的概念与重要性二、网络设备配置备份与恢复的分类三、python网络设备配置备份与恢复实

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在