读书人

hibernate多对1(一对多)单向(双向)

发布时间: 2013-03-29 14:24:52 作者: rapoo

hibernate多对一(一对多)单向(双向)关系映射
package yingjun.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class Person {private int id;private String name;private int age;@Id@GeneratedValuepublic 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;@Entitypublic class Dream {private int dreamid;private String dream;private Person person;@Id@GeneratedValuepublic 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;@Entitypublic class Person {private int id;private String name;private int age;private Set<Dream> dream=new HashSet<Dream>();@Id@GeneratedValuepublic 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;@Entitypublic class Dream {private int dreamid;private String dream;@Id@GeneratedValuepublic 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;@Entitypublic class Person {private int id;private String name;private int age;private Set<Dream> dream=new HashSet<Dream>();@Id@GeneratedValuepublic 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;@Entitypublic class Dream {private int dreamid;private String dream;private Person person;@Id@GeneratedValuepublic 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;}@ManyToOnepublic 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)

?

?

读书人网 >软件架构设计

热点推荐