在一个事务中向JHipster发送PUT/GET/POST请求
我是Jhipster的新手,对它的一些功能理解有问题。因此,我的问题是 我有以下两个微服务。 Microservice 1(MS1)在Java中具有以下数据结构:在一个事务中向JHipster发送PUT/GET/POST请求,jhipster,Jhipster,我是Jhipster的新手,对它的一些功能理解有问题。因此,我的问题是 我有以下两个微服务。 Microservice 1(MS1)在Java中具有以下数据结构: Lead { Customer customer; Deal deal; } Customer{ Integer phoneNumber; etc... } Deal{ Integer value; etc... } Microservice 2(MS2)是JHipster生成的数据库。 DB只有以下SQL表: CUSTOMER
Lead {
Customer customer;
Deal deal;
}
Customer{
Integer phoneNumber;
etc...
}
Deal{
Integer value;
etc...
}
Microservice 2(MS2)是JHipster生成的数据库。
DB只有以下SQL表:
CUSTOMER
LEAD
当Microservice 1中发生更改时,我会从MS1向MS2发送两个单独的PUT请求
- 首先,通过MS2中的
API请求更新CUSTOMER/CUSTOMER
- 如果更新正常,则发送请求以更新MS2中的DEAL
API/DEAL
/lead
)发送一个事务,该API包含两个表
在不为LEAD创建额外表格的情况下,实现这一目标的最佳方法是什么?
e、 例如,我应该使用Jhipster生成的层/服务。
如果可能(但不是必要的),我希望避免接触频繁重新生成的代码。(例如,客户、交易)
如果已经有文档,请告诉我。它们很难理解,所以我不确定当前是否有专门解决这个问题的方法。谢谢。当直接从CRUD REST API公开JPA实体时,这是一个常见问题。 持久性模型不需要是API模型 如果两个实体是相关的,并且应该在同一事务中更新,这意味着应该使用一个原子API请求更新它们 因此,您可以使用DTO来定义一个新资源,以组合您的两个实体,通过手动编写的新API公开(因此不需要额外的表)
由于您使用的是微服务体系结构,MS1和MS2之间也可能存在类似的情况,在这里您无法使用事务,然后您可能必须实施补救。为了澄清,您的意思是我应该创建一个新的jhipster实体,该实体本身没有字段,但与客户和交易有关系。最终的结果是,对于API模型,我有一个LeadJava对象、LeadDToJava对象等。但是我如何确保持久性模型不包含这个新创建的潜在客户实体呢?是否有一个特定的文件我应该在代码生成后删除?不,我没有考虑使用
jhipster entity
,因为它可能会创建比您需要的更多的东西(您不需要持久性),删除它们可能容易出错,我只是想通过实现一个资源手动实现它,一个DTO和一个服务。不要过度使用代码生成