Hibernate 版本: v5.2.10
Eclipse版本:v4.7.1
JDK版本: v1.8
MySQL版本:v5.7
POJO类一
package com.bak.bum.union;
import java.util.HashSet;
import java.util.Set;
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.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name = "100_teacher")
public class Teacher {
private int id;
private String name;
Set students = new HashSet();
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public String getName() {
return name;
}
@ManyToMany
@JoinTable(name = "tsTable", joinColumns = { @JoinColumn(name = "TeacherID") }, inverseJoinColumns = {
@JoinColumn(name = "StudentsID") })
public Set getStudents() {
return students;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setStudents(Set students) {
this.students = students;
}
}
POJO类二
package com.bak.bum.union;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="100_students")
public class Students {
private int id;
private String name;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
Junit -TEST类
package com.bak.fan.test;
import java.util.EnumSet;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;
public class Test {
@org.junit.Test
public void test() {
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata();
SchemaExport schemaExport = new SchemaExport();
schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata);
}
}
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driverproperty>
<property name="connection.url">jdbc:mysql://localhost/hibernateproperty>
<property name="connection.username">rootproperty>
<property name="connection.password">shwythnn00property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialectproperty>
<property name="show_sql">trueproperty>
<property name="hibernate.format_sql">trueproperty>
<property name="hibernate.hbm2ddl.auto">createproperty>
<property name="">property>
<mapping class="com.bak.bum.union.Teacher" />
<mapping class="com.bak.bum.union.Students" />
session-factory>
hibernate-configuration>
POJO类一
package com.bak.bum.union;
import java.util.HashSet;
import java.util.Set;
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.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name = "200_teacher")
public class Teacher {
private int id;
private String name;
Set students = new HashSet();
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public String getName() {
return name;
}
@ManyToMany
@JoinTable(name = "tsTable", joinColumns = { @JoinColumn(name = "TeacherID") }, inverseJoinColumns = {
@JoinColumn(name = "StudentsID") })
public Set getStudents() {
return students;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setStudents(Set students) {
this.students = students;
}
}
POJO类二
package com.bak.bum.union;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name = "200_students")
public class Students {
private int id;
private String name;
private Set teacher = new HashSet();
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int getId() {
return id;
}
public String getName() {
return name;
}
@ManyToMany(mappedBy="students")
public Set getTeacher() {
return teacher;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setTeacher(Set teacher) {
this.teacher = teacher;
}
}
Junit-Test类
package com.bak.fan.test;
import java.util.EnumSet;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;
public class Test {
@org.junit.Test
public void test() {
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata();
SchemaExport schemaExport = new SchemaExport();
schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata);
}
}
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driverproperty>
<property name="connection.url">jdbc:mysql://localhost/hibernateproperty>
<property name="connection.username">rootproperty>
<property name="connection.password">shwythnn00property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialectproperty>
<property name="show_sql">trueproperty>
<property name="hibernate.format_sql">trueproperty>
<property name="hibernate.hbm2ddl.auto">createproperty>
<property name="">property>
<mapping class="com.bak.bum.union.Teacher" />
<mapping class="com.bak.bum.union.Students" />
session-factory>
hibernate-configuration>