【发布时间】:2011-07-25 11:41:24
【问题描述】:
如果我发现使用主键的记录,我正在尝试使用 JPA 更新表。在此期间我有一个限制,不应该使用空值更新记录。如果我有一个表
具有列 emp_id、emp_name 的员工 emp_name 有一个值,而新记录没有 emp_name 的值,在这种情况下应该保留旧名称。是否可能?
【问题讨论】:
如果我发现使用主键的记录,我正在尝试使用 JPA 更新表。在此期间我有一个限制,不应该使用空值更新记录。如果我有一个表
具有列 emp_id、emp_name 的员工 emp_name 有一个值,而新记录没有 emp_name 的值,在这种情况下应该保留旧名称。是否可能?
【问题讨论】:
当您找到()原始员工时,它将具有旧值。你的新纪录来自哪里?假设它是一些分离的员工,那么只需将不为空的属性覆盖到被管理的员工中。
JPA merge() 将始终合并所有内容。在 EclipseLink 中,您可以在要合并的实体上设置 FetchGroup,并且只会合并获取的属性。
【讨论】: