Hibernate 1-1(注解实现,基于外键列的单向无连接表)

原创 2016年08月29日 23:43:38
package com.javaee.book.hibernate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name = "person_inf")
public class Person {

    @Id
    @Column(name = "person_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private int age;
    @OneToOne(targetEntity = Address.class)
@JoinColumn(name="address_id",referencedColumnName="address_id",unique=true)

    private Address address;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

}
package com.javaee.book.hibernate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "address_inf")
public class Address {
    @Id
    @Column(name="address_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int addressId;
    private String addressDetail;

    public Address() {
        // Hibernate调用
    }

    public Address(String detail) {
        this.addressDetail = detail;
    }

    public int getAddressId() {
        return addressId;
    }

    public void setAddressId(int addressId) {
        this.addressId = addressId;
    }

    public String getAddressDetail() {
        return addressDetail;
    }

    public void setAddressDetail(String addressDetail) {
        this.addressDetail = addressDetail;
    }

}
public class TestDemo {
    public static void main(String[] args) {
        testOneToOne1();
    }


    public static void testOneToOne1(){

        //加载hibernate.cfg.cml文件
        StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                .configure().build();
        SessionFactory sessionFactory = new MetadataSources(registry)
                .buildMetadata().buildSessionFactory();
        // 获取Session
        Session session = sessionFactory.openSession();
        // 获取Transaction
        Transaction transaction = session.beginTransaction();

        Person person=new Person();
        person.setName("British Man");
        person.setAge(21);
        Address a1=new Address("NewBalance");
        person.setAddress(a1);
        // 先持久化Address对象(对应为插入主表记录)
        session.persist(a1);
        // 再持久化Person对象(对应为插入从表记录)
        session.save(person);

        transaction.commit();
        session.close();
        sessionFactory.close();

    }

Hibernate 1-N单向关联(注解实现)

无连接表的1-N单向关联Person.java(1端)package com.oneToMany;import java.util.HashSet; import java.util.Set;impo...

Hibernate 1-1(有连接表的的单向1-1关联)

package com.javaee.book.hibernate;import javax.persistence.Column; import javax.persistence.Entity; ...

文章标题 Hibernate 1-N 双相关联

Hibernate 1-N 双相关联 Hibernate 可以通过主控方的实体加载被控方的实体,也可以通过被控方加载主控方的实体 接下来的一个实例将讲解1-n与n-1之间的双向关联; 1 首先配...
  • Souwy
  • Souwy
  • 2016年12月27日 17:54
  • 1445

hibernate5(9)注解映射[1]多对一单向关联

在实际的项目开发中,我们常常需要建立我们实体类间的复杂关系,比如在一个博客网站中,用户会写文章,则文章与用户的关系就是多对一的映射关系。 现在先看一个配置实例:我们的文章实体类package com...

Hibernate 1+N 问题

1+N问题的描述:举例,多个主题(Topic)属于一个帖子(Category),一个帖子含有多个主题。当只需要查询Topic时不要查询Category时,如果@ManyToOne的属性fetch=Fe...

hibernate 1

第1课 课程内容 1、 HelloWorld a) Xml b) Annotction 2、 Hibernate原理模拟-什么是O/RMapping以及为什么要有O/RMapping 3、 常风的O/...
  • tanyit
  • tanyit
  • 2011年11月18日 10:58
  • 2683

深入浅出Hibernate 1/2

  • 2009年07月09日 20:10
  • 14MB
  • 下载

【SSH进阶之路】【九】hibernate5 注解映射【1】 多对一单向关联

在博客网站中,我们可能需要从某一篇文章找到其所关联的作者,这就需要从文章方建立起对用户的关联,即是多对一的映射关系。现在先看一个配置实例:我们的文章实体类package com.chenhao.hib...

hibernate单向无连接表1—N关系映射

1、首先创建数据库本示例采用sql sever 2008 r2数据库进行测试 创建address表 创建person表 2、在myeclipse中通过hibernate反向工程生成对应的...

hibernate单向N-1无表连接级联

今天做到hibernate关系映射单向N-1级联这里憋了一上午终于调通了一个例子有点收获。下边说一下流程 1、创建数据库 address表 person表 建立他们之间的外键关系 2、在hibe...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate 1-1(注解实现,基于外键列的单向无连接表)
举报原因:
原因补充:

(最多只允许输入30个字)