`
zcz123
  • 浏览: 162880 次
  • 性别: 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...

    Mybatis实现关联查询一对一和一对多实现

    Mybatis实现关联查询一对一和一对多实现,具体效果看博文 http://blog.csdn.net/evankaka/article/details/45674101

    JAVA语音聊天一对一音频信号传输

    【Java语音聊天一对一音频信号传输】的实现涉及多个关键技术点,包括网络连接的建立、音频信号的采集与回放、音频数据的编码与解码。以下是对这些知识点的详细阐述: 1. **网络连接的建立** 在Java中,TCP/IP协议...

    .Net MVC5下SignalR简单web即时聊天小程度

    SignalR是一个开源库,主要用于.NET开发者,它简化了在ASP.NET应用程序中构建实时、双向通信功能的过程。在这个标题中,我们聚焦的是在.Net MVC5框架下利用SignalR构建一个简单的Web即时聊天应用程序。MVC5是微软的...

    socket 一个服务器对应多个客户端使用多线程

    在标题"socket 一个服务器对应多个客户端使用多线程"中,提到的是使用Socket编程来设计一个服务器,该服务器能够同时处理来自多个客户端的连接请求,这通常被称为“一对一”或“一对多”模型。在Linux环境下,这种...

    springboot+websocket+Stomp+RabbitMq 实现多人聊天室

    在本文中,我们将深入探讨如何使用Spring Boot、WebSocket、STOMP协议和RabbitMQ来构建一个功能完善的多人聊天室系统。这些技术的结合为实时通信提供了高效且可靠的解决方案。 首先,Spring Boot是Java开发Web应用...

    svm多分类的java源码

    在这个Java源码中,开发者可能实现了一种策略来解决多类别的问题,比如一对一(one-vs-one)或一对一(one-vs-rest)方法。 一对一方法是将多分类问题转化为多个二分类问题,每个类别与其它所有类别进行对比,然后...

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

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

    SSM框架下的一对多和多对一查询

    在SSM框架下实现一对多和多对一查询是常见的数据操作需求。 一对多关系指的是一个实体可以拥有多个关联的实体,比如一个学生可以有多个课程,多对一则是反过来,多个实体对应一个实体,例如多个学生可以对应一个班...

    E-R图实例及问答.rar

    E-R图会展示这些关系的类型(一对一、一对多、多对多)以及关系的约束条件。 E-R图在设计数据库时起着至关重要的作用,因为它帮助设计师可视化数据结构,从而更好地理解数据如何组织和交互。在“e-r.doc”文档中,...

    画数据库ER图的工具

    在ER图中,可以标注键、主键、外键以及各种关系的类型,如一对一、一对多、多对多等。 3. **ER图绘制工具的功能**: - **图形化界面**:提供直观易用的拖放功能,方便用户创建和编辑实体、属性和关系。 - **自动...

    WebrtcDemo

    这个技术主要用于实现互联网上的音视频通信,包括一对一、一对多等多种形式。在Android平台上,WebRTC被广泛应用于开发视频通话应用。 标题中的"WebrtcDemo"是一个基于WebRTC实现的Android视频一对一聊天示例项目。...

    MVC_EF框架_Bootstrap示例

    提供实体设计:一对一,一对多,多对多,自引用的各种使用场景 业务逻辑层(BLL): 实现CURD方法 提供复杂查询场景 提供业务异常抛出 对后端异常进行拦截写日志 对写操作进行写历史,用于追踪 IBLL: 服务接口,可...

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

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

    Android中的XMPP应用

    - **消息发送与接收**:包括一对一聊天、群聊等多种方式。 - **用户状态管理**:通过设置不同的在线状态(如在线、离线、忙碌等)来展示用户的可用性。 ##### 2.2 示例代码分析 为了更好地理解如何在Android应用中...

    局域网通讯软件源代码

    1. **点对点聊天**:意味着用户可以直接与其他用户进行一对一的私密对话,无需通过中央服务器作为中介。 2. **组群聊天**:允许用户创建和加入群组,方便多用户同时参与的讨论。 3. **文件传输**:软件支持文件共享...

    XMPP协议的IM客户端IMPanda

    协议允许用户进行一对一和多对多的交互,支持丰富的数据格式,包括文本、图片、文件等。此外,XMPP还提供了实时的在线状态显示,使用户能够了解联系人的在线状态。 IMPanda的当前功能包括基本的消息发送,意味着...

    mybatis-3.4.1(含源码).zip

    5. **结果集映射**:通过配置文件,MyBatis可以将查询结果自动映射到Java对象,包括一对一、一对多、多对一等复杂关系的映射。 6. **缓存**:MyBatis内置了两级缓存,一级缓存是SqlSession级别的,二级缓存是Mapper...

    Free Virtual Serial Ports Emulator(免费的虚拟串口工具)

    它可以是一对一、一对多甚至多对多的连接模式,满足各种复杂的通信场景。 2. **实时通信**:虚拟串口间的通信是实时的,数据传输不受任何限制,确保了软件测试的真实性和可靠性。 3. **可编程性**:VSPE 提供API...

Global site tag (gtag.js) - Google Analytics