java - 尝试检索 BusinessPartnerUUID 时出错
问题描述
我已经关注了这个深潜博客 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
这是由应用程序编程模型处理的 在这种情况下我可以做些什么来解决错误?谢谢
解决方案
我可以重现你的问题。看来使用的 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)。
希望这会有所帮助。
推荐阅读
- r - 安装包“Rmpfr”在 R 中具有非零退出状态
- bootstrap-4 - 如何在 Bootstrap 按钮和表格之间创建空间
- java - 将目录从一个存储库移动到另一个存储库
- postgresql - 在 docker-compose 文件中创建多个 PostgreSQL 数据库
- docker - Docker 系统尚未使用 systemd 作为 init 系统启动
- c++ - 当需要特定于类型参数的代码时是否应该使用模板?
- reactjs - 如何在反应中将值绑定到动态控件
- python - numpy 数组到数组中的唯一数字
- java - 如何使用 Java 中的 Hibernate 将 utf-8 字符集保存在非 utf-8 Oracle 数据库中?
- python - 基于分类列和另一列的值创建列