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

 

分享到:
评论

相关推荐

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

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

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

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

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

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

    hibernate3.3.2中文帮助文档

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

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

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

    一对多虚拟串口

    下面我们将深入探讨一对多虚拟串口的工作原理、应用领域以及实现方法。 1. **工作原理** 一对多虚拟串口通过软件模拟多个串口,这些虚拟串口与物理串口之间建立连接。当物理串口接收到数据时,软件会将这些数据...

    Expert one on one J2EE development without EJB.pdf

    ### 《一对一专家指导:无需EJB的J2EE开发》关键知识点解析 #### 一、背景介绍 在Java企业级应用开发领域中,EJB(Enterprise JavaBeans)曾被视为构建复杂分布式系统的标准方法之一。然而,随着技术的发展与实践中...

    C语言基于socket多人聊天(包含注册登录)

    系统设计允许多用户同时在线交流,支持一对一的私聊以及群组内的公开对话。 首先,我们来看一下“C语言”的部分。C语言是一种底层、高效的编程语言,常用于系统级编程和网络编程。在这个项目中,C语言用于编写...

    hibernate-3.2.6

    9. **集合映射**:包括List、Set、Map等多种Java集合类型与数据库表的关联映射,支持一对一、一对多、多对一和多对多关系。 10. **事件监听器**:Hibernate 3.2.6允许开发者注册监听器,对对象的生命周期事件(如...

    E-R图实例及问答.rar

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

    SSH实现学生选课系统

    学生选课系统可能包含如学生表、课程表、选课表等实体,这些表之间的关系(如一对一、一对多、多对多)需要合理设计,以确保数据的一致性和完整性。例如,学生表可能包含学号、姓名等字段,课程表可能有课程ID、课程...

    MVC_EF框架_Bootstrap示例

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

    Android中的XMPP应用

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

    基于socket聊天程序编写实验报告

    (2)客户可以通过服务器转发,实现一对一和多对多聊天。 (3)实现呼叫功能。 (4)客户端程序应该可以实时显示目前其它用户的状态。 (5)应该具有易用、美观的图形界面。 一、 实验目的: 1. 了解socket类...

    mybatis-3.4.1(含源码).zip

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

    Grails 中文参考手册

    - **领域建模**:GORM提供了强大的领域模型支持,包括不同类型的关联(一对一、一对多、多对多)和组合、继承等概念。 - **持久化操作**:包括对象的保存、更新、删除,以及级联操作和加载策略。 - **查询**:...

    BLE_和经典蓝牙Android编程说明

    为了实现一对一的串口数据传输,开发者应确保预设的配对信息,以便设备加电后能自动建立连接。 在编程过程中,识别不同蓝牙设备的角色(主设备和从设备)对于建立稳定连接至关重要。主设备负责发起配对请求,而从...

    实验室设备管理系统(数据库设计)

    这些实体间的关系可以是多对一、一对多或一对一,如一个设备可以被多人借用,一个人可以借用多个设备。 三、逻辑设计 逻辑设计阶段将概念设计转化为具体的表结构,定义字段类型、长度、约束等。例如: 1. 设备表:...

    alibaba-rocketmq-3.1.3

    点对点模式则更适用于一对一的消息传递,每个消息仅被一个消费者消费。 RocketMQ还具有强大的管理工具,包括监控、日志分析、性能测试等功能,帮助运维人员实时监控系统状态,及时发现和解决问题。在3.1.3版本中,...

    人脸识别系统源代码合集

    8. **人脸验证与识别的区别**:源代码可能涵盖了两种任务:人脸验证(一对一比较,判断是否为同一人)和人脸识别(一对多比较,找出与给定人脸最匹配的个体)。 9. **数据库管理**:对于大规模人脸识别系统,可能...

Global site tag (gtag.js) - Google Analytics