`

hibernate多对一(一对多)单向(双向)关系映射

阅读更多

1.hibernate多对一单向关系映射(外键永远会加在多的一方)

package yingjun.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Person {
	private int id;
	private String name;
	private int age;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	
}

 

package yingjun.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Dream {
	private int dreamid;
	private String dream;
	private Person person;
	
	@Id
	@GeneratedValue
	public int getDreamid() {
		return dreamid;
	}
	public void setDreamid(int dreamid) {
		this.dreamid = dreamid;
	}
	public String getDream() {
		return dream;
	}
	public void setDream(String dream) {
		this.dream = dream;
	}
	public void setPerson(Person person) {
		this.person = person;
	}
	@ManyToOne  //建立多对一联系
	@JoinColumn(name="personid")
	public Person getPerson() {
		return person;
	}
}

 

    create table Dream (
        dreamid integer not null auto_increment,
        dream varchar(255),
        personid integer,
        primary key (dreamid)
    )

    create table Person (
        id integer not null auto_increment,
        age integer not null,
        name varchar(255),
        primary key (id)
    )

    alter table Dream 
        add index FK3F397E3E07A4B5E (personid), 
        add constraint FK3F397E3E07A4B5E 
        foreign key (personid) 
        references Person (id)

 

2.hibernate一对多单向关系映射(外键永远会加在多的一方)

package yingjun.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;

@Entity
public class Person {
	private int id;
	private String name;
	private int age;
	private Set<Dream> dream=new HashSet<Dream>();
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	@OneToMany
	@JoinColumn(name="personid")//要加这个字段  不然会用多对多的方式生产3张表
	public Set<Dream> getDream() {
		return dream;
	}
	
	public void setDream(Set<Dream> dream) {
		this.dream = dream;
	}

	
}

 

package yingjun.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Dream {
	private int dreamid;
	private String dream;
	
	
	@Id
	@GeneratedValue
	public int getDreamid() {
		return dreamid;
	}
	public void setDreamid(int dreamid) {
		this.dreamid = dreamid;
	}
	public String getDream() {
		return dream;
	}
	public void setDream(String dream) {
		this.dream = dream;
	}

}

 

create table Dream (
        dreamid integer not null auto_increment,
        dream varchar(255),
        personid integer,
        primary key (dreamid)
    )

    create table Person (
        id integer not null auto_increment,
        age integer not null,
        name varchar(255),
        primary key (id)
    )

    alter table Dream 
        add index FK3F397E3E07A4B5E (personid), 
        add constraint FK3F397E3E07A4B5E 
        foreign key (personid) 
        references Person (id)

 

3.hibernate多对一(一对多)双向关系映射

package yingjun.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToMany;

@Entity
public class Person {
	private int id;
	private String name;
	private int age;
	private Set<Dream> dream=new HashSet<Dream>();
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	@OneToMany(mappedBy="person") //mappedBy要加在One这方
	public Set<Dream> getDream() {
		return dream;
	}
	
	public void setDream(Set<Dream> dream) {
		this.dream = dream;
	}

	
}

 

package yingjun.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Dream {
	private int dreamid;
	private String dream;
	private Person person;
	
	@Id
	@GeneratedValue
	public int getDreamid() {
		return dreamid;
	}
	public void setDreamid(int dreamid) {
		this.dreamid = dreamid;
	}
	public String getDream() {
		return dream;
	}
	public void setDream(String dream) {
		this.dream = dream;
	}
	@ManyToOne
	public Person getPerson() {
			return person;
		
	}
	public void setPerson(Person person) {
		this.person = person;
	}

}

 

create table Dream (
        dreamid integer not null auto_increment,
        dream varchar(255),
        person_id integer,
        primary key (dreamid)
    )

    create table Person (
        id integer not null auto_increment,
        age integer not null,
        name varchar(255),
        primary key (id)
    )

    alter table Dream 
        add index FK3F397E3F8EABE73 (person_id), 
        add constraint FK3F397E3F8EABE73 
        foreign key (person_id) 
        references Person (id)

 

 

分享到:
评论

相关推荐

    hibernate关联映射详解

    包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。

    Hibernate关联映射

    Hibernate 一对一外键单向关联 Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向...Hibernate 一对多外键双向关联 Hibernate 一对多连接表双向关联 Hibernate 多对多双向关联

    hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了

    hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了

    Hibernate关联关系映射目录

    Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...

    Hibernate的N对N的关系映射

    简单的Hibernate的N对N关系的映射,这里主要的只是谈到了关于如何映射一对一,多对一,多对多的单向和双向映射。 当然,其实所谓的单双向映射最终还是要表现在select时的作用,但是这一部分并未介绍。 我想,要想搞...

    hibernate各种映射关系祥解

    hibernate各种映射关系祥解 一对一双向 一对一单向 一对多双向 一对多单向 多对一单向 多对多双向 多对多单向

    hibernate学习笔记

    hibernate一对多双向自连接关联映射 15 hibernate多对多关联映射(单向User----&gt;Role) 19 hibernate多对多关联映射(双向User&lt;----&gt;Role) 20 Hibernate的继承关系 21 每棵继承树映射成一张表(hibernate_extends_1) 22 ...

    Java的Hibernate框架中一对多的单向和双向关联映射

    建立对SQL语句的映射是Hibernate框架操作数据库的主要手段,这里我们列举实例来为大家讲解Java的Hibernate框架中一对多的单向和双向关联映射

    Hibernate学习笔记

    014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多关联映射 单向 017 多对多关联映射 双向 018 关联映射文件中标签中的 lazy(懒加载)属性 019 关联映射文件中集合标签中的 lazy(懒加载)属性 020 、单端...

    Hibernate表关系总结(一对一,多对一,多对多)

    Hibernate表关系总结(一对一,多对一,多对多,单向,双向),有具体实例代码

    Hibernate_实体关联关系映射--学习总结

    Hibernate 实体关联关系映射 学习总结 把一对一 一对多 单向 双向 主键 外键 链接表等讲的比较清楚

    Hibernate_Annotation关联映射

    通过在被拥有的实体端(owned entity)增加一个外键列来实现一对多单向关联是很少见的,也是不推荐的,建议通过一个联接表来实现这种关联(下面会讲到)。 @JoinColoumn批注来描述这种单向关联关系 @Entity Public class...

    ORM映射关系配置

    实现Hibernate框架中一对一,一对多,多对多关系的单向和双向配置总结!

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...

    Hibernate+中文文档

    21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...

    eshop1.0(ssh电子商城)

    9.配置会员到留言的一对多单向关联关系 10.配置管理员到留言的一对多单向关联关系 11.配置会员到购物车的一对多单向关联关系 12.配置订单到购物车的一对一单向关联关系 13.配置购物车到商品的多对多单向关联关系

    HibernateAPI中文版.chm

    21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     7.3 映射一对多双向自身关联关系  7.4 改进持久化类  7.5 小结  7.6 思考题 第8章 通过Hibernate操纵对象(上)  8.1 Java对象在JVM中的生命周期  8.2 理解Session的缓存  8.2.1 Session的缓存的作用  ...

    hibernate3.2中文文档(chm格式)

    21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...

    Hibernate中文详细学习文档

    21.2. 双向的一对多关系(Bidirectional one-to-many) 21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 ...

Global site tag (gtag.js) - Google Analytics