gpt4 book ai didi

java - 使用 Session.merge() 函数在 hibernate 中合并两个对象时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:57 33 4
gpt4 key购买 nike

我正在尝试使用 hibernate 更新数据库中的单个记录,所以我想合并更新的对象。我有代码来更新对象并返回合并的 hibernate 实体对象,例如,

  protected <T> T updateObject(T o) {
Session s = getSession();
@SuppressWarnings("unchecked")
T mergedObject = (T) s.merge(o);
s.update(mergedObject);
return mergedObject;
}

当我尝试更新多值属性(例如地址列表)时,如果我在列表中添加新地址并调用更新函数,

T mergedObject = (T) s.merge(o); 之后, mergedObject 包含 null 值,交易失败。我怎样才能正确地做到这一点?

最佳答案

如果您的对象是列表,那么您需要迭代列表并分别合并特定实体。虽然你不能只使用 String.该对象必须是 hibernate 实体。使用 hibernate 实体,您可以这样做。

    T mergedObject = null;
if(o instanceof List){
for(Object obj: o){
mergedObject = (T) s.merge(obj);
}
}else{
mergedObject = (T) s.merge(o);
}

关于java - 使用 Session.merge() 函数在 hibernate 中合并两个对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29627528/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com