CAP SQLite到HANA API的不一致

2020-08-24 13:07发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨! 我对CAP模型有疑问。 ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨! 我对CAP模型有疑问。

我使用Node.js构建了应用程序。 它在本地环境中运行良好,但是当我决定将应用程序推送到Cloud Foundry时,它停止工作。 我发现了原因。 cds模块产生的结构不一致。

例如考虑以下cds定义:

实体用户{
   密钥ID:整数;
   名称:字符串;
   surename:字符串;
   评论:许多对comment.user_id = $ self.id的评论的关联;
 }

 实体评论{
   密钥ID:整数;
   user_id:整数; 文字:字串;
 }

 服务MyAwesomeService {
   实体User作为对User的投影;
   实体评论作为评论的投影;
 } 

1。 全局cds.entites以其名称为前缀。

在本地环境中,我可以将User实体获取为:

 cds.entities.User 

但是对于高效的,与hdi共享的hana容器,它可以转换为:

 cds.entities ['MyAwesomeService.User'] 

2。 自定义查询结果结构已更改:

 const aUsersWithComments =等待SELECT.from(User.name +'as user',[
     '用户名',
     'comment.text'
   ])
     .leftJoin(Comment.name,'comment')
     .on('user.id','=','comment.user_id');
 

它在当地环境中产生

 [
   {
     名称:" Efim",
     文字:"帮帮我!"
   },
   {
     名称:" Efim",
     文字:"修正!"
   }
 ] 

但是使用hana的相同查询将导致

 [
   {
     名称:" Efim",
     评论:{
       文字:"帮帮我!"
     }
    
   },
   {
     名称:" Efim",
     评论:{
       文字:"修正!"
     }
   }
 ] 

这些问题使我对CAP感到不舒服,因为我希望无缝切换数据库。

我做错什么了吗? 还是已知问题?

1条回答
追夢秋陽
2020-08-24 13:10

嗨,

感谢您的举报。 当然,sqlite和hana在这里的行为应相同。 我会尝试重现...

最诚挚的问候,

平子

一周热门 更多>