【问题标题】:How to orphan delete/update JPA entities?如何孤立删除/更新 JPA 实体?
【发布时间】:2012-04-04 04:27:49
【问题描述】:
public class Person{

@OneToMany(orphanRemoval = true)
List<Cars> myCars;
  //Get and Set
}

public class Car{
  Here Attribs    
}

使用此代码,如果我删除/更新一辆车而不是列表元素。它会更新/删除吗?

例子:

Person me = DAO.GetPerson(23);
Car oneCar = me.getCars().get(0); ///Lets say it exits
//then i update
oneCar.setThis(4);
oneCar.setThat(5);
DAO.UpdateCar(oneCar); //This is just EntityManager.merge
DAO.DeleteCar(oneCar); //This is just EntityManager.remove 

我如何保证孤儿费用将级联到列​​表所有者(在这种情况下为 PErson)?所以我可以通过一辆车而不是汽车列表来更新人的汽车。

【问题讨论】:

    标签: java jpa orm eclipselink


    【解决方案1】:

    orphanRemoval 意味着您只需从集合中删除对象,而不是对其调用 em.remove() 。看来您正在做相反的事情,所以这无济于事。

    您需要从人员的汽车列表中删除汽车,然后合并人员。如果您级联合并,那么您根本不需要单独合并汽车,或对其调用 remove。

    仅当您的对象已分离时才需要合并。如果您在同一个 EntityManager/transaction 中进行更改,那么您根本不需要调用合并。

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      相关资源
      最近更新 更多