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

标签 java hibernate jpa

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

@Entity
public class Content {

  @Id
  @GeneratedValue
  private Long id;

  private Long externalId;

 // many other fields
}

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

Content c = deserialize(json);

是否有像 EntityManager.merge 这样的东西可以使用 externalId 字段而不是 id 从数据库中加载和更新相应的行> 领域?

最佳答案

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

希望这对您有所帮助。

关于java - 是否有基于非 Id 字段合并的 JPA 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41830071/

相关文章:

spring - 负载平衡(ribbon)和路由(zuul)Spring REST API(Spring Data JPA)请求到同一服务的多个副本

java - JPA、Eclipselink - 关系在新事务中被删除

java - Java 中的随机数生成器

java - native 存储过程与 Hibernate

java - NetBeans 用来从数据库生成实体类的工具是什么?

java - 根据软件许可证标志更改 JAAS 角色

java - 如何使用 Hibernate 以最佳方式更新对象中的单个属性?

java - Java中使用栈和队列应用问题的回文测试器

java - 如何使用 for 循环创建一个正方形

java - 为 BST 实现 equals 和 hashcode