從來就得到了這個父對象JPA,合併對象更新兒童
@OneToMany(mappedBy="idUser", cascade = CascadeType.MERGE)
public List<Directions> directions;
從來就上,並在我的控制器得到這個
public static void userUpdate(String apikey, JsonObject body) {
if(validate(apikey)) {
Long idUser = decode(apikey);
User oldUser = User.findById(idUser);
Map<String, User> userMap = new HashMap<String, User>();
Type arrayListType = new TypeToken<Map<String, User>>(){}.getType();
userMap = gson().fromJson(body, arrayListType);
User user = userMap.get("user");
oldUser.em().merge(user);
oldUser.save();
}else{
forbidden();
}
}
這使得父對象上的更新,但當我更改子對象上的某些東西時,它不會更新它,也不會給hibernate或Oracle帶來問題。
有誰知道爲什麼它不會更新子對象?
謝謝大家!
更新瞭解決方案!
這就是它對我的作用,因爲@JB Nizet說你也必須保存子對象。
oldUser.em().merge(user);
oldUser.save();
for (Direction direction : oldUser.directions) {
direction.save();
}
另一種說法!
由於能夠使oldUser.save(),並得到挽救了孩子的對象這
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "SASHNBR", insertable = true, updatable = true)
public List<Direction> directions;
從來就。
難道你看http://stackoverflow.com/questions/2530498/jpa-persisting-object-parent-is-ok-但孩子沒有更新 – rayyildiz
@rayyildiz我做了,如果你看看我實現CascadeType.MERGE這是我想要的代碼。無論如何,我會嘗試與CascadeType.ALL。謝謝! :) – axierjhtjz
@rayyildiz也沒有工作。 :( – axierjhtjz