是否有基于非Id字段合并的JPA功能?

时间:2017-01-24 13:56:31

标签: java hibernate jpa

我正在构建的服务从外部系统接收来自供应商的“外部ID”的数据。当我将这些数据保存在我们的数据库中时,我也为其分配了一个自动生成的ID:

@Entity
public class Content {

  @Id
  @GeneratedValue
  private Long id;

  private Long externalId;

 // many other fields
}

当外部系统重新发送相同内容的数据(具有相同的外部ID)时,它将被反序列化为分离的内容POJO:

Content c = deserialize(json);

是否有类似EntityManager.merge的内容可以使用externalId字段而不是id字段加载和更新数据库中的相应行?

1 个答案:

答案 0 :(得分:0)

差不多,但如果外部客户端不知道您的ID,您必须使用查询来获取实体(实际上您只需要实体的ID)。获得id后,您可以在分离的实体上进行设置并进行合并。

希望这有帮助。