JPA - 从REST服务获取子对象

时间:2017-06-27 21:25:06

标签: java spring rest jpa

我正在编写一个Spring Boot(带JPA)REST应用程序,其中组成我的模型的一个实体由不同的/外部服务拥有,可以使用REST api获取。

@Entity
public class ManagedEntity {
  @Id
  private UUID id;      
  private ExternalEntity external; // I can be fetch from a REST api
}

我想知道我应该如何映射我的实体,以便让我的JPA实现从REST api加载它,如果可能的话。

或者,为了拥有一个丰富的模型,建模我的实体/应用程序的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

无法在数据访问层执行此操作。您可以在业务逻辑中加载数据。更改您的@Entity课程添加

@Transient 
private ExternalEntity external;

首先从数据库中获取数据,然后尝试进行服务调用以填充ExternalEntity

答案 1 :(得分:0)

您可以使用@Transient标记整个ExternalEntity并在服务逻辑中初始化它。

但返回数据的最佳方法是返回视图对象而不是JPA域对象

答案 2 :(得分:0)

由于您使用Spring标记标记了问题,并且因为您似乎正在寻找易于完成的建议,为什么不使用Spring-Data-REST?从头版......

  
    

Spring Data REST

         

Spring Data REST是Spring Data项目的一部分,可以轻松地在Spring Data存储库之上构建超媒体驱动的REST Web服务。