您好我有两个班教授2.java和Projects2.java。这些是我的实体类,它们与多对多关系有关。这是我的Professor2类的一部分,我在其中声明了Project2实例的列表。
@ManyToMany
private List<Projects2> projects = new ArrayList();
public List<Projects2> getProjects() {
return projects;
}
public void setProjects(List<Projects2> projects) {
this.projects = projects;
}
这是我的Project2类的一部分:
@ManyToMany(mappedBy = "projects",cascade = CascadeType.PERSIST)
private List<Professor2> professor2s;
public List<Professor2> getProfessor2s() {
return professor2s;
}
public void setProfessor2s(List<Professor2> professor2s) {
this.professor2s = professor2s;
}
public void addProfessor(Professor2 prof)
{
if (!getProfessor2s().contains(prof))
{
getProfessor2s().add(prof);
}
if (!prof.getProjects().contains(this))
{
prof.getProjects().add(this);
}
}
这是持久化项目及其教授的功能:
public void addProfAndProj(Professor2 p1 ,Projects2 p2)
{
EntityManager em = emf.createEntityManager();
p2.addProfessor(p1);
try{
em.getTransaction().begin();
em.persist(p2);
em.getTransaction().commit();
} finally{
em.close();
}
}
问题是第三个表是连接表(通过我首先创建实体类的方式,然后是从它们创建数据库的方式)。里面没有显示任何数据。您认为哪里可能是问题。