尝试检索BusinessPartnerUUID时出错

时间:2018-07-20 02:15:57

标签: java s4sdk

我关注了这个深入的博客12。 Deep Dive 12 没关系。 而且我对BusinessPartnerUUID更感兴趣,因此我修改了文件service-model.cds。

using API_BUSINESS_PARTNER as bp from './external/csn/API_BUSINESS_PARTNER';

service CrudService{

 @cds.persistence.skip
 Entity BusinessPartner as projection on bp.A_BusinessPartnerType{
   BusinessPartner,
   LastName,
   FirstName,
   BusinessPartnerCategory,
   BusinessPartnerUUID
  };
}

但是,当我这次运行时,服务返回

The type 'class java.lang.String' of the value object is not supported.

在我进行谷歌搜索时,它使我想到了这种方法 Method internalValueToString

这由应用程序编程模型处理 在这种情况下,我该怎么办才能解决错误? 谢谢

1 个答案:

答案 0 :(得分:3)

我可以重现您的问题。似乎使用的Olingo库在UUID字段的类型转换方面存在问题。但是我不确定是什么原因引起的。

目前您可以执行以下操作:

通过引用自定义业务伙伴实体定义来调整服务定义。这与“深潜”的第3步中的方法相同。

service.cds:

using my.app from '../db/data-model';

service CrudService {
 @cds.persistence.skip
 entity BusinessPartner as projection on bookshop.BusinessPartners;
}

data-model.cds

entity BusinessPartners {
 key BusinessPartner : String(10);
 LastName: String(40);
 FirstName: String(40);
 BusinessPartnerUUID: String(36);
}

UUID字段为CDS UUID类型,并转换为OData EDM UUID字段->字符串(36)。

希望这会有所帮助。