import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class ORMapppingTest {
public static SessionFactory sf = null;
@BeforeClass
public static void beforeClass(){
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}
@Test
public void test() {
Group g = new Group();
User u = new User();
Session session1 = sf.openSession();
session1.beginTransaction();
g.setId(1);
g.setName("第一组");
session1.save(g);
session1.getTransaction().commit();
Session session2 = sf.openSession();
session2.beginTransaction();
u.setId(1);
u.setName("张三");
session2.save(u);
session2.getTransaction().commit();
}
@AfterClass
public static void afterClass(){
sf.close();
}
}
7.观察产生的sql语句:
Hibernate: create table t_group (id integer not null auto_increment, name varchar(255), primary key (id))
Hibernate: create table t_user (id integer not null auto_increment, name varchar(255), groupId integer, primary key (id))
Hibernate: alter table t_user add constraint FK_7ktm6l2qkykpqrf6oq01ys8wy foreign key (groupId) references t_group (id)
二、xml配置
1.Group.hbm.xml
2.User.hbm.xml
3.观察产生的sql语句
Hibernate: create table t_group (id integer not null auto_increment, name varchar(255), primary key (id))
Hibernate: create table t_user (id integer not null auto_increment, name varchar(255), groupId integer, primary key (id))
Hibernate: alter table t_user add constraint FK_7ktm6l2qkykpqrf6oq01ys8wy foreign key (groupId) references t_group (id)
?
B、一对多单向关联
1.类:在一的一方存在多的一方的集合
2.数据库同上
一、Annotation配置
i、Group.java
package com.zgy.hibernate.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;
import javax.persistence.Table;
@Entity
@Table(name="t_group")
public class Group {
private int id;
private String name;
private Set users = new HashSet();
@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;
}
@OneToMany
@JoinColumn(name="groupId")
public Set getUsers() {
return users;
}
public void setUsers(Set users) {
this.users = users;
}
}
?
ii、User.java
package com.zgy.hibernate.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="t_user")
public class User {
private int id;
private String name;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String ge