尝试检索 BusinessPartnerUUID 时出错
Error when trying to retrieve BusinessPartnerUUID
我关注了这个深度挖掘博客 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
};
}
但是,当我运行这个时候,服务returns
The type 'class java.lang.String' of the value object is not supported.
当我进行一些谷歌搜索时,它引导我使用这种方法
Method internalValueToString
这由应用程序编程模型处理
在这种情况下我能做些什么来解决错误?
谢谢
我可以重现你的问题。看来使用的 Olingo lib 对 UUID 字段的类型转换有问题。但是我还不确定是什么导致了这个问题。
目前您可以执行以下操作:
通过引用自定义业务合作伙伴实体定义来调整服务定义。这与 Deep Dive 的第 3 步中的方法相同。
service.cds:
using my.app from '../db/data-model';
service CrudService {
@cds.persistence.skip
entity BusinessPartner as projection on bookshop.BusinessPartners;
}
数据-model.cds
entity BusinessPartners {
key BusinessPartner : String(10);
LastName: String(40);
FirstName: String(40);
BusinessPartnerUUID: String(36);
}
UUID 字段是 CDS UUID 类型并转换为 OData EDM UUID 字段 -> String(36)。
希望这对您有所帮助。
我关注了这个深度挖掘博客 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
};
}
但是,当我运行这个时候,服务returns
The type 'class java.lang.String' of the value object is not supported.
当我进行一些谷歌搜索时,它引导我使用这种方法 Method internalValueToString
这由应用程序编程模型处理 在这种情况下我能做些什么来解决错误? 谢谢
我可以重现你的问题。看来使用的 Olingo lib 对 UUID 字段的类型转换有问题。但是我还不确定是什么导致了这个问题。
目前您可以执行以下操作:
通过引用自定义业务合作伙伴实体定义来调整服务定义。这与 Deep Dive 的第 3 步中的方法相同。
service.cds:
using my.app from '../db/data-model';
service CrudService {
@cds.persistence.skip
entity BusinessPartner as projection on bookshop.BusinessPartners;
}
数据-model.cds
entity BusinessPartners {
key BusinessPartner : String(10);
LastName: String(40);
FirstName: String(40);
BusinessPartnerUUID: String(36);
}
UUID 字段是 CDS UUID 类型并转换为 OData EDM UUID 字段 -> String(36)。
希望这对您有所帮助。