`

Hibernate OneToOne 配置

 
阅读更多
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.helloworld.entity;

/**
 *
 * @author LiuQing
 */
public class Operation {

    private String id;

    private String opName;

    private UserInfo userInfo;

    /**
     * 注意
     * @param argUserInfo
     */
    public void setUserInfoRelation(UserInfo argUserInfo) {
        this.userInfo = argUserInfo;
        this.userInfo.setOperation(this);
    }

    public String getId() {
        return id;
    }

  
    public void setId(String id) {
        this.id = id;
    }

    public String getOpName() {
        return opName;
    }

    public void setOpName(String opName) {
        this.opName = opName;
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

}

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.helloworld.entity;

/**
 *
 * @author LiuQing
 */
public class UserInfo {

    private String id;

    private String name;

   private Operation operation;

   public void setOperationRelation(Operation argOperation) {
       this.operation = argOperation;
       this.operation.setUserInfo(this);
   }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Operation getOperation() {
        return operation;
    }

    public void setOperation(Operation operation) {
        this.operation = operation;
    }

}

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2011-12-31 9:56:49 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="com.helloworld.entity.Operation" table="operation">
       <id name="id" type="string">
            <column name="id" />
            <generator class="uuid" />
       </id>
       <property name="opName" />
       <many-to-one name="userInfo" cascade="all" />
    </class>
</hibernate-mapping>

 

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2011-12-31 9:56:49 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="com.helloworld.entity.UserInfo" table="userinfo">
       <id name="id" type="string">
            <column name="id" />
            <generator class="uuid" />
       </id>
       <property name="name" />
       <one-to-one name="operation" cascade="all" property-ref="userInfo" />
    </class>
</hibernate-mapping>

 

 第二种使用annotation

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.helloworld.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

/**
 *
 * @author liuqing
 */
@Entity(name="userInfo")
@Table(name="tb_Userinfo")
public class UserInfo implements Serializable {

    @Id
    @GenericGenerator(name="idGenerator", strategy="uuid") //hibernate的注解
    @GeneratedValue(generator="idGenerator")
    private String id;
    
    @Column
    private String name;

    /**
     * 也可以用OneToOne
     */
    @ManyToOne
   private Operations operation;

   public void setOperationRelation(Operations argOperation) {
       this.operation = argOperation;
       this.operation.setUserInfo(this);
   }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Operations getOperation() {
        return operation;
    }

    public void setOperation(Operations operation) {
        this.operation = operation;
    }

}

 

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.helloworld.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

@Entity(name="Operation")
@Table(name="Operation")
public class Operations implements Serializable {

    /**
     * 定义uuid 32位编码
     */
    @Id
    @GenericGenerator(name="idGenerator", strategy="uuid") //hibernate的注解
    @GeneratedValue(generator="idGenerator")
    private String id;

    @Column
    private String opName;

    /**
     * 一对一
     */
    @OneToOne(mappedBy = "operation")
    private UserInfo userInfo;

    /**
     * 注意
     * @param argUserInfo
     */
    public void setUserInfoRelation(UserInfo argUserInfo) {
        this.userInfo = argUserInfo;
        this.userInfo.setOperation(this);
    }

    public String getId() {
        return id;
    }

  
    public void setId(String id) {
        this.id = id;
    }

    public String getOpName() {
        return opName;
    }

    public void setOpName(String opName) {
        this.opName = opName;
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

}

 

//注意在后面版本中(3.2 之后) annotationConfiguration 被去掉了
//统一用Configuration config = new Configuration().configuration;
//不分注解或xml配置方法
Configuration config = new AnnotationConfiguration().configure();
        Session session = config.buildSessionFactory().openSession();
        Transaction tx = session.beginTransaction();

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    hibernate_onetoone实例

    总结,这个“Hibernate一对一实例”是一个学习和理解如何在Java应用中使用Hibernate处理一对一关系的好资源,涵盖了数据库设计、Hibernate配置以及Java编程。通过实践这个例子,开发者可以增强对ORM框架的理解,提升...

    hibernate one to one 映射到两种方式

    在Hibernate执行CRUD操作时,它会根据注解配置生成SQL语句。对于主键外键关联,Hibernate会自动处理外键的设置;而对于单独的外键关联,Hibernate会在保存关联对象时同步更新外键值。 四、最佳实践 选择哪种方式取...

    hibernate 关联映射(二) one to one(单向)

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它使得开发者能够将数据库操作与业务逻辑代码...在实际开发中,根据业务需求合理配置`@OneToOne`注解,可以提高代码的可读性和数据库操作的效率。

    springmvc + hibernate annotation 配置

    3. **配置Hibernate**:在主配置文件(如`applicationContext.xml`)中,配置Hibernate的数据源、SessionFactory和事务管理器。使用`LocalSessionFactoryBean`来创建SessionFactory,并设置数据库连接信息。同时,...

    hibernate基本配置及使用方法

    【hibernate基本配置及使用方法】 Hibernate是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与关系数据库之间的交互。本教程将详细解释Hibernate的基本配置和使用步骤,帮助初学者快速掌握这一强大...

    Hibernate映射配置实例大全(详细总结)

    "Hibernate映射配置实例大全"是一个全面深入的资源,旨在帮助开发者理解和掌握如何有效地配置Hibernate以实现对象关系映射(ORM)。在这个文档中,我们将探讨各种关键的映射配置方法,以及相关的实例。 首先,我们...

    OneToOne:使用 maven Hibernate onetoone 示例

    通过这个`OneToOne-master`项目,你可以学习到如何在实际应用中配置和使用Hibernate的一对一关联。同时,也可以了解到Maven如何管理项目依赖,以及如何结合数据库进行数据操作。理解并熟练掌握这些知识,将有助于你...

    spring-hibernate注解配置源码

    本实例"spring-hibernate注解配置源码"旨在展示如何在不使用XML配置的情况下,通过注解的方式整合Struts2、Spring和Hibernate,创建一个完整的MVC(模型-视图-控制器)架构的应用。下面将详细介绍这个过程中的关键...

    Hibernate one to one详细配置

    **标题:“Hibernate 一对一详细配置”** 在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射类型之一。它用于表示两个实体之间一对一的关联关系,即一个实体对应另一个实体的唯一实例...

    Eclipse Hibernate基本配置及简单实现

    Hibernate支持多种关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。通过注解或XML配置文件来定义这些关系。 ### 总结 Eclipse Hibernate的基本配置和简单实现...

    Hibernate注解配置表映射实例

    在这个“Hibernate注解配置表映射实例”中,我们将深入探讨如何使用Hibernate的注解来配置实体类与数据库表之间的映射。 Hibernate注解提供了在Java类和类属性上直接定义数据库映射的能力,避免了XML配置文件的繁琐...

    Hibernate映射关系配置:XML方式和注解方式

    标题“Hibernate映射关系配置:XML方式和注解方式”涉及到的是Java持久层框架Hibernate中的一个重要概念——对象关系映射(ORM)。在这个主题中,我们将探讨如何通过XML映射文件和注解来配置Hibernate实体之间的关系...

    Hibernate关联映射-one to one单向外键关联

    在Hibernate中,一对一关联可以通过配置XML映射文件或者使用注解来实现。我们先来看XML映射文件的例子。假设我们有两个实体,一个是`User`,另一个是`Account`,`User`实体拥有对`Account`的引用。在`User.hbm.xml`...

    hibernate入门配置

    1. Hibernate支持多种关系映射,如一对一(@OneToOne),一对多(@OneToMany),多对一(@ManyToOne),多对多(@ManyToMany)等,通过注解在实体类中配置。 **十、懒加载与立即加载** 1. 懒加载:关联对象只在真正...

    hibernate一对多、多对一、一对一、多对多配置实例

    本文将深入探讨Hibernate中的一对多、多对一、一对一以及多对多四种关系映射的配置实例,帮助开发者更好地理解和运用这些关系。 ### 一对多关系(One-to-Many) 在数据库设计中,一对多关系是最常见的一种关联,...

    注解配置 javabean hibernate 关联关系

    在Hibernate框架中,注解配置被广泛用于简化对象关系映射(ORM)的配置,使得Java Bean可以直接与数据库表进行关联。本篇文章将深入探讨如何使用注解配置Java Bean并建立Hibernate的关联关系。 首先,我们需要理解...

    详解Hibernate一对一映射配置

    下面我们将详细讲解如何在Hibernate中进行一对一映射的配置。 **一、XML文件配置** 1. **主键关联(Primary Key Join)** 主键关联是最简单的一对一映射方式,两个实体类共享同一个主键。在XML配置文件中,我们...

    hibernate各种常用关联关系的基本配置

    本篇文章将深入探讨Hibernate中常见的几种关联关系及其基本配置。 一、一对一(OneToOne)关联 在一对一关联中,一个实体对象只对应数据库中的一个记录。配置方式通常通过`@OneToOne`注解实现,可以设置`mappedBy`...

    hibernate基本配置

    **hibernate基本配置** Hibernate 是一款强大的Java持久层框架,它简化了数据库与Java对象之间的交互,使得开发者可以更加专注于业务逻辑而不必过多地处理SQL语句和数据访问细节。在本文中,我们将深入探讨...

    Struts2 Spring3.0 Hibernate3.3 整合全注解配置用的数据库

    总结来说,Struts2、Spring3.0和Hibernate3.3的全注解配置简化了代码,提高了可读性和可维护性。通过注解,我们可以快速地定义bean、映射请求、管理事务和数据库关系。这个数据库示例表明了这些技术在实际项目中的...

Global site tag (gtag.js) - Google Analytics