`
zcz123
  • 浏览: 157189 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类

一对一

阅读更多

一对一单向

定义两个类,两个映射文件一个工具类生成表

public class Group {
	
	private int id;	
	private String name;
                //这里省略setter,getter方法
}

 

public class User{
     private int id;
     private String name;
     private Group group;
      //这里省略setter,getter方法
}

 

	<class name="many2one.User" table="t_user">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>	
		<!-- 无连接表 -->	
		 <many-to-one name="group" column="groupid" unique="true" not-null="true"/>
		 <!-- 有连接表 
		<join table="User_Group" optional="true">
			<key column="userid" unique="true"/>
			<many-to-one name="group" class="many2one.Group" column="groupid" unique="true" not-null="true" />			
		</join>	 -->
	</class>

 

	<class name="many2one.Group" table="t_group">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
	</class>

 

	public static void main(String[] args) {
		//读取hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure();
		SchemaExport export = new SchemaExport(cfg);
		export.create(true, true);
	}

 一对一双向

在原来的基础上,添加如下的两个配置

private User user;

 

<!-- 一对多双向 -->
<one-to-one name="user" property-ref="group" />

 

基于主键的一对一

两个实体类,两个映射文件

public class Person {
	
	private int id;
	private Address address;
                //setter,getter
}

 

public class Address {
	
	private int id;
	private Person person;
                //setter,getter方法
}

 

	<class name="Person" table="Person">	
		<id name="id" column="personId">            
            <generator class="native" />
        </id>
		<one-to-one name="address" />		
	</class>

 

	<class name="Address" table="Address">	
		<id name="id" column="personId">       
            <generator class="foreign">
            	<param name="property">person</param>
            </generator>
        </id>
		<one-to-one name="person" constrained="true" />	
	</class>

 

分享到:
评论

相关推荐

    nRF24L01无线模块实现一对一、一对多、多对一收发程序

    《nRF24L01无线模块:一对一、一对多、多对一收发程序详解》 在无线通信领域,nRF24L01是一款广泛应用的2.4GHz射频收发芯片,以其低成本、低功耗和高集成度的特点受到了广泛的欢迎。本文将深入探讨如何使用nRF24L01...

    基于socket和tkinter的python网络聊天室程序

    Python是一种强大的编程语言,尤其适合于开发网络应用和图形用户界面。在这个项目中,我们将深入探讨如何使用Python的socket模块创建一个网络聊天室,并结合tkinter库构建一个友好的图形用户界面。 首先,socket...

    完整开源ZigBee协议栈C语言代码

    此外,对C语言的深入理解和实践经验也是必不可少的,因为这将直接影响到对ZigBee协议栈的代码理解和修改能力。总之,"完整开源ZigBee协议栈C语言代码"为物联网开发者提供了一个宝贵的教育资源,有助于提升其在ZigBee...

    类似QQ的全套聊天系统[极品] 源码

    QQ的全套聊天 - 指出该源码模仿了QQ聊天系统的所有主要功能,包括一对一私聊、群聊等。 【压缩包子文件的文件名称列表】:gowk - 这个文件可能是源代码的主程序或者项目的根目录,包含了整个聊天系统的源代码文件、...

    android的XMPP客户端

    XMPP协议支持多种功能,包括一对一聊天、群组聊天、文件传输等,是许多即时通讯应用背后的支柱。 在Android环境中,开发者通常会使用Java或Kotlin进行编程。要创建XMPP客户端,首先需要集成一个XMPP库。Smack是一个...

    hibernate3.3.2中文帮助文档

    9. **集合映射**:Hibernate支持多种类型的集合映射,如List、Set、Map等,以及一对一、一对多、多对多的关联关系映射。 10. **缓存机制**:Hibernate提供了一级缓存和二级缓存,可以提高数据读取速度并减少数据库...

    数据库课程设计 图书管理系统

    例如,一个作者可以写多本书(一对多),一本书可以由多个作者共同创作(多对多),一个读者可以借阅多本图书(一对多),而一本书在同一时间只能被一位读者借阅(一对一)。 在数据库设计中,还需要考虑数据的一致...

    SVM多分类代码

    这里我们将深入探讨SVM的多分类策略,包括一对多(One-vs-All, OvA)和一对一(One-vs-One, OvO)方法,并结合数据集和代码执行过程来阐述其工作原理和实现细节。 1. **一对多(One-vs-All, OvA)策略**: 在OvA...

    北京精雕 JDPaint 5.21.0.1028 旗舰版 (免狗版)2

    2. 【纯净】 不含任何他人使用所产生的临时文件,一对一的100%纯净 3. 【稳定】 稳定性,只能说不比有狗版差一丝一毫,因为精雕本身就并不完美 4. 【急速启动】 程序启动速度 :1秒 (空文件) 5. 【便捷】 随时随地...

    java游戏之聊天室

    `ServerSocket`用于在指定端口监听客户端连接,当有新的连接请求时,它会创建一个`Socket`对象,用于与客户端建立一对一的通信通道。客户端通过`Socket`连接服务器,然后通过输入输出流(`InputStream`和`...

    unity3D战旗类回合制格斗游戏源码

    格斗游戏通常涉及一对一或一对多的即时战斗,注重角色的连招、闪避和反击技巧。在本项目中,这种元素可能被巧妙地融入战旗游戏的框架中,创造出独特的战斗体验。玩家可能需要掌握每个角色的特殊攻击和组合技,以在...

    C#的Demo项目:RabbitMQ封装和使用

    在C#项目中,可以创建一个DirectExchange类,设置路由键和队列绑定,实现一对一的消息传递。 2. **Fanout Exchange**(扇出交换机):不考虑路由键,它会把所有到达的消息广播到所有绑定的队列。这种模式适合一对多...

    画ER图好用工具

    2. **全面的图形元素**:软件提供了丰富的图形元素,包括实体、属性、关系线以及各种关系类型的表示符号,如一对一、一对多、多对多等,满足数据库设计的各种需求。 3. **自定义属性**:在DiagramDesigner中,你...

    Access2003数据库应用基础教程(第二版)电子教案PPT、实例源文件,有很好的参考价值.

    6. **表间关系**:讲述一对一、一对多、多对多的关系模型,如何建立和调整关系,理解参照完整性的概念。 7. **窗体和报表**:介绍如何利用窗体进行数据录入和查看,创建交互式用户界面;学习报表的布局和设计,用于...

    udp网络通信例子源代码(单播、组播、广播)

    - 单播是最常见的通信方式,类似于一对一的通信。发送者向特定的接收者发送数据,每个数据包都独立发送,没有确认机制,可能丢失或重复。 - 在Linux中,使用`socket()`创建UDP套接字,`bind()`绑定本地端口,`...

    SVM(支持向量机)入门 (深入浅出讲解原理)

    - 一种常用的方法是“一对一”(One-vs-One),即构建多个二分类器,每一对类别构建一个分类器。 - 另一种方法是“一对多”(One-vs-All),其中为每个类别构建一个分类器,该分类器区分该类别和其他所有类别。 #### ...

    google蓝牙4.0(ble 4.0)官方demo

    - **大量连接**:支持一对一、一对多甚至多对多的连接模式,能够连接大量的设备。 - **安全性和兼容性**:采用了高级加密标准(AES),提高了数据安全性,并且与旧版蓝牙设备有很好的兼容性。 **2. BLE 4.0的协议...

    PowerDesigner16.5使用文档

    - **表关系设置**:调整关系的类型,如一对一、一对多、多对多,以及设置级联操作。 8. **模板保存**:定期保存模型,防止意外丢失工作进度。 9. **查看模板**:使用预览功能检查模型的结构和设置。 **三、模板...

    Webrtc 视频demo(Android)

    在Android平台上,开发者可以利用WebRTC库创建丰富的音视频应用,包括视频会议、直播、一对一通话等功能。本篇文章将深入探讨基于Android的WebRTC视频demo的相关知识点。 1. **WebRTC架构**: WebRTC系统由三大...

Global site tag (gtag.js) - Google Analytics