JPA 多对多实例配置
public class JPA_ManyToManyTest {@Testpublic void manyTomany() throws Exception {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");factory.close();}/** * 保存数据并建立关系 * * @throws Exception */@Testpublic void save() throws Exception {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");EntityManager em = factory.createEntityManager();em.getTransaction().begin();Teacher teacher = new Teacher("梦娅");Student stu = new Student("张明学");// 建立关系teacher.addStudent(stu);em.persist(stu);em.persist(teacher);em.getTransaction().commit();em.close();factory.close();}/** * 解除关系 * */@Testpublic void removeTeacherStudent() {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");EntityManager em = factory.createEntityManager();em.getTransaction().begin();Teacher t = em.find(Teacher.class, 1);t.removeStudent(em.getReference(Student.class, 1));em.getTransaction().commit();em.close();factory.close();}@Testpublic void deleteStudentTeacher() {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");EntityManager em = factory.createEntityManager();em.getTransaction().begin();em.remove(em.getReference(Student.class, 1));em.remove(em.getReference(Teacher.class, 1));em.getTransaction().commit();em.close();factory.close();}// 操作成功@Testpublic void deleteTeacherStudent() {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");EntityManager em = factory.createEntityManager();em.getTransaction().begin();em.remove(em.getReference(Teacher.class, 2));em.remove(em.getReference(Student.class, 2));em.getTransaction().commit();em.close();factory.close();}// 操作成功/** * 删除失败,学生是关系被维护端无权更新外键 * */@Testpublic void deleteStudent() {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");EntityManager em = factory.createEntityManager();em.getTransaction().begin();em.remove(em.getReference(Student.class, 3));em.getTransaction().commit();em.close();factory.close();}/** * 删除成功,老师是关系维护端有权更新外键 * */@Testpublic void deleteTeacher() {EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");EntityManager em = factory.createEntityManager();em.getTransaction().begin();em.remove(em.getReference(Teacher.class, 3));em.getTransaction().commit();em.close();factory.close();}}
?