【问题标题】:How to post the data into multiple tables using Talend RestFul Services如何使用 Talend RestFul Services 将数据发布到多个表中
【发布时间】:2018-07-19 00:21:02
【问题描述】:

我有 3 个表,分别称为 PATIENT、PHONE 和 PATIENT_PHONE。

  1. PATIENT 表包含以下列:id、firstname、lastname、email 和 dob。
  2. PHONE 表包含以下列:id、type 和 number。
  3. PATIENT_PHONE 表包含以下列:patient_id、phone_id。

PATIENT 和 PHONE 表由 PATIENT_PHONE 表映射。所以我必须加入这 3 个表才能将名字、姓氏、电子邮件和号码字段发布到数据库中。

我试过这样:

first_xmlmap 的架构 [

Patient 和 Patient_phone 的架构映射 [

【问题讨论】:

  • 什么部分不工作?您能否详细说明您的问题/错误?
  • 我发布了一张有效的单表。 TRestRequest-->TMysqlOutput-->TxmlMap --->TrestResponse 工作正常。现在我想将数据发布到多个表中。我不知道如何发布到多个表中。

标签: mysql rest talend


【解决方案1】:

我假设您希望针对针对 Web 服务的每个请求将相同的数据写入同一数据库实例中的多个数据库表。

使用 tHashOutput 和 tHashInput 组件怎么样?

如果您在组件 Pallete 中看不到 tHash* 组件,请转到: 文件 > 编辑项目属性 > 设计器 > 调色板设置...

突出显示过滤的组件,单击箭头将它们移出过滤器,然后单击确定。

tHash 组件允许您将一些数据推送到内存,以便稍后将其读回。请注意,这些数据会写入易失性内存 (RAM),一旦 JVM 退出就会丢失。

确保 tHashOutput 组件中的“追加”未选中,并且 tHashInput 组件设置为读取后不清除缓存。

您可以在我的示例中看到一些简单的错误处理,它保证客户端总是会从服务中获得某种响应,即使在处理请求时出现问题。

另请注意,写入数据库表是一个全有或全无的事务 - 也就是说,只有在处理请求时没有错误时,服务才会将数据写入所有指定的表。

希望这能让您充分了解如何将此类功能扩展到您自己的实现。

【讨论】:

  • 感谢您的回答。
  • 但我正在进行患者注册。我需要将患者字段发布到患者表,并将地址字段发布到地址表。但是 Patient 和 Address 表都由 Patient_address 表映射,它包含 Patient_id 和 Address_id。所以我必须加入这 3 个表才能将数据发布到 Patient 和 Address 表中。
  • 您是否可以更新您的问题,以提供发布的 REST 有效负载的示例以及您要写入的每个表的架构?如果没有这些信息,很难准确地想象你的意思(但一定要在发布之前去掉任何敏感信息!)
猜你喜欢
  • 1970-01-01
  • 2016-02-27
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多