2020-08-26 06:33发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我需要公开一个基于Olingo的OData服务,该服务允许用户上传二进制(文本)文件。
二进制文件是以下一项的属性 我的实体。
我知道Gateway可以使用媒体类型的实体属性来处理此问题。
Olingo可以实现同样的效果吗?
谢谢
文森佐
我与Olingo开发人员取得了联系。
回答是,通过JPA OData处理器作为JPA持久性单元的一部分公开的实体不支持" isStream"标志。
谢谢,
Vincenzo
这有点晚了,但是由于我在找到解决方案之前找到了这篇文章,所以我认为我会继续分享,以帮助别人。
这里有更多信息可通过JPA和@blob和@lob处理:
Apache Olingo库
在我的情况下,我不想将上传的文件存储在数据库中,而是经过一些预处理后存储在文件系统中。 我有一个名为DigitalAudio的简单JPA实体。 它具有许多属性以及所存储文件的文件系统位置。 OData v2不支持Actions,并且函数导入仅支持仅带参数的GET和POST(无请求正文)。 我采用的方法是在我的实体AudioFile中添加一个额外的@Transient属性。 然后,我使用JPAEdmExtension扩展了EDM。
@Override 公共无效的extendJPAEdmSchema(JPAEdmSchemaView视图){ 架构架构= view.getEdmSchema(); 对于(EntityType t:schema.getEntityTypes()){ 如果(t.getName()。equals(" DigitalAudio")){ t.getProperties()。add(getAudioFileProperty()); } } } 私有属性getAudioFileProperty(){ SimpleProperty属性=新的SimpleProperty(); JPAEdmMappingImpl映射=新的JPAEdmMappingImpl(); mapping.setJPAType(byte []。class); property.setName(" AudioFile"); property.setType(EdmSimpleTypeKind.Binary); property.setMapping(mapping); property.setMimeType(" application/octet-stream"); 归还财产; }
然后我实现了自己的ODataJPAProcessor,如此处所述(请注意,我扩展了ODataJPAProcessorDefault):
在处理器内部,您可以覆盖创建和更新。 在那里,您可以将文件提取为byte []并根据需要进行处理。
希望这有助于尝试实现类似功能的人。
干杯
卢克
嗨,
我发现这个问题有点晚了,但是我有可行的解决方案,我写了一个SCN博客来处理blob对象的存储和检索。
https://blogs.sap.com/2017/08/03/binary-content-upload-and-download-from-hana-db-through-apache-olingo -odata-in-sap-cloud-foundry/
这可能会有所帮助。
感谢拉吉尼斯人
最多设置5个标签!
大家好,
我与Olingo开发人员取得了联系。
回答是,通过JPA OData处理器作为JPA持久性单元的一部分公开的实体不支持" isStream"标志。
谢谢,
>Vincenzo
这有点晚了,但是由于我在找到解决方案之前找到了这篇文章,所以我认为我会继续分享,以帮助别人。
这里有更多信息可通过JPA和@blob和@lob处理:
Apache Olingo库
在我的情况下,我不想将上传的文件存储在数据库中,而是经过一些预处理后存储在文件系统中。 我有一个名为DigitalAudio的简单JPA实体。 它具有许多属性以及所存储文件的文件系统位置。 OData v2不支持Actions,并且函数导入仅支持仅带参数的GET和POST(无请求正文)。 我采用的方法是在我的实体AudioFile中添加一个额外的@Transient属性。 然后,我使用JPAEdmExtension扩展了EDM。
然后我实现了自己的ODataJPAProcessor,如此处所述(请注意,我扩展了ODataJPAProcessorDefault):
Apache Olingo库
在处理器内部,您可以覆盖创建和更新。 在那里,您可以将文件提取为byte []并根据需要进行处理。
希望这有助于尝试实现类似功能的人。
干杯
卢克
嗨,
我发现这个问题有点晚了,但是我有可行的解决方案,我写了一个SCN博客来处理blob对象的存储和检索。
https://blogs.sap.com/2017/08/03/binary-content-upload-and-download-from-hana-db-through-apache-olingo -odata-in-sap-cloud-foundry/
这可能会有所帮助。
感谢拉吉尼斯人
一周热门 更多>