我在一个像这样工作的客户端 - 服务器应用程序上工作:
1-客户端调用服务器从DB获取对象
2-服务器打开一个hibernate会话并获取()一个实体。然后关闭会话。
3-为了减少通过网络传输的数据,只有部分数据被复制到数据传输对象中。
4-客户端更新数据,并将数据传输对象发送回服务器。
5-服务器将DTO转换为新实体。
6-所以问题是:
如何使用数据库中的数据持久保存/合并来自客户端的数据,而不会覆盖存储在数据库中的非空值?
我需要使用update()吗?合并()?我需要使用“dynamic-update = true”属性吗?
答案 0 :(得分:4)
我认为唯一安全的策略是在步骤5中加载当前实体表单DB,然后在再次保存之前将DTO复制到其中。