JPA持久存在多个Fetch = FetchType.Lazy

时间:2014-04-06 13:33:09

标签: java hibernate java-ee jpa ejb

我有一个非常标准的场景,我有一个Employe表和一个Unite ewith表。这两个表通过多对多的关系相关联(即,emoloye可以有很多联合,并且unite可以应用于许多雇员),随后我有一个名为effectif_unite的连接表。只有两列。 我已经生成了实体类(见下文),我没有问题将数据持久保存到employees和unite表,但是我很失败地将任何内容保存到employe_has_unite。

//方法和应用程序客户端

public void add(int mat, String grade, String fonction, int cnprs, int cin, String np, String adress, String tel, int disp, Date date, ArrayList uns) {
    Employe emp = new Employe();
    Grade gr = bean.grade_emp(grade);
    Fonction f = bean.fonction_emp(fonction);
    emp.setMatEmp(mat);

    emp.setNumGrd(gr.getNumGrd());
    emp.setNumFon(f.getNumFon());
    emp.setCnprs(cnprs);
    emp.setCin(cin);
    emp.setAdress(adress);
    emp.setTel(tel);
    emp.setNp(np);
    emp.setDispo(disp);
    emp.setDtRt(date);
    emp.setUniteList(uns); // i affect List<Unite> To employe here!!

    bean.add(emp);
    }

// DAO
public void add(Employe e,ArrayList<Unite> uns)
{  /* EntityTransaction et = em.getTransaction();
et.begin();
em.persist(e);
et.commit();     */
EntityTransaction ett = em.getTransaction();
ett.begin();
EffectifUnite u=new EffectifUnite();

u.setUnite(uns.get(0));
u.setEmploye(em.find(Employe.class, 1));
EffectifUnitePK pk= new EffectifUnitePK();
pk.setMatEmp(em.find(Employe.class, 1).getMatEmp());
pk.setNumUnt(uns.get(0).getNumUnt());
u.setEffectifUnitePK(pk);


em.persist(u);
ett.commit();
}

0 个答案:

没有答案