1

我已经关注了这个深潜博客 12。 深潜 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

这是由应用程序编程模型处理的 在这种情况下我可以做些什么来解决错误?谢谢

4

1 回答 1

3

我可以重现你的问题。看来使用的 Olingo lib 的 UUID 字段的类型转换有问题。但是我不确定是什么导致了这个问题。

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

通过引用自定义业务合作伙伴实体定义来调整服务定义。这与 Deep Dive 的第 3 步中的方法相同。

服务.cds:

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

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

数据模型.cds

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

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

希望这会有所帮助。

于 2018-07-20T10:49:08.690 回答