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 Annotation一对一单向外键关联

使用注解的方式进行设置。如下: (1)
  • yyywyr
  • yyywyr
  • 2014年04月13日 21:27
  • 9728

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

一对多单向关联映射在实际的博客网站中,用户肯定需要获取自己所写的文章,这时可以建立用户(一)对文章(多)的单向关联映射。 先来看我们的一方配置实例package com.zeng.model;imp...
  • qwe6112071
  • qwe6112071
  • 2016年04月07日 09:26
  • 5972

Hibernate学习总结:OneToMany单向关联

说明: 一、例子是一个组有许多用户,但一个用户只能属于一个组 二、本次使用的Hibernate版本是hibernate-release-4.3.11.Final. 先写Annotation...
  • sinat_18882775
  • sinat_18882775
  • 2016年04月17日 01:34
  • 1779

Hibernate 注解单向一对多配置

Hibernate 注解单向一对多配置
  • u012726702
  • u012726702
  • 2016年08月30日 07:54
  • 423

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

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

Hibernate单向一对多JPA注解

首先新建三张表:t_user,t_user_role_relation,t_role CREATE TABLE t_user ( uid INT NOT NULL AUTO_INCREMENT COM...
  • w_amwf
  • w_amwf
  • 2015年09月24日 21:28
  • 1000

Hibernate关系映射(一)一对一单向外键关联@OneToOne Annotation方式

首先构造一个场景,实体:国家(country),它具有以下属性,Id,名称,使用货币,首都。实体:首都(capital),它具有以下属性,Id,名称。一个国家有且仅有一个首都,一个首都只能属于一个国家...
  • MurcielagoAN
  • MurcielagoAN
  • 2015年02月26日 16:57
  • 3975

6.1.2 基于外键的单向1--->1关联

对于单向的1--->1关联关系,需要在持久化类里为关联实体的引用属性增加setter和getter方法。从持久化类上来看,单向1--->1与单向N--->1没有丝毫区别。因为N的一端,或者1的一端都是...
  • confirmAname
  • confirmAname
  • 2013年07月12日 04:25
  • 578

Hibernate Annotation 一对多单向关联

1、单向关联 (1)Group package com.yy.hibernate.model; import java.util.HashSet; import java.util.Set; ...
  • yyywyr
  • yyywyr
  • 2014年04月14日 22:23
  • 2228

Hibernate单向关联1-1

基于外键的单向1-1关联一个House关联一个Owner。House类:package com.ydoing.hibernate3; import javax.persistence.CascadeT...
  • csujiangyu
  • csujiangyu
  • 2015年08月05日 15:18
  • 504
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate 1-1(注解实现,基于外键列的单向无连接表)
举报原因:
原因补充:

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