如何通过使用Java代码从组件获取本地化的值

2020-09-10 13:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 我需要从模型中获取内容...

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

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


专家,

我需要从模型中获取内容。 我已将查询编写如下:从{PostalContentComponent}中选择{content},其中{uid} ='AboutEgyptPostContentComponent'

我可以在hac和代码级别获得结果。

但是我需要获取在hac中而不是在代码级中进行查询的本地化值。 HAC查询是:从{PostalContentComponent}中选择{content [ar]},其中{uid} ='AboutEgyptPostContentComponent'

我遇到以下异常:原因:java.sql.SQLSyntaxErrorException:转换中的数据类型不兼容:从SQL类型VARCHAR到java.lang.Long,值:

请帮助您使用Java代码获取本地化值。

4条回答
小熊yu生菜
2020-09-10 14:15 .采纳回答

只需在HAC中编写查询,然后单击SQL查询,您就会了解本地化属性在Hybris中的工作方式。

例如,以下是我正在获取产品代码

的查询
 从{SizeVariantProduct!}中选择{code},其中{code} ='617850'
  

其SQL查询转换为

 从sizevariantproduct item_t0中选择item_t0.p_code在哪里(item_t0.p_code ='617850')AND(item_t0.TypePkString =?)

  

现在,如果我搜索作为本地化属性的名称,我的flexi查询和sql查询将转换为 下列。 Flexi:

 从{SizeVariantProduct!}中选择{name},其中{code} ='617850'

  

SQL:

 从sizevariantproduct item_t0中选择lp_t0.p_name JOIN sizevariantproductlp lp_t0 ON item_t0.PK = lp_t0.ITEMPK AND lp_t0.LANGPK =? 在(item_t0.p_code ='617850')和(item_t0.TypePkString =?)

  

查看包含本地化属性的查询如何与表'sizevariantproductlp'联接在一起

因此,我认为您可以按照以下方式编写查询:

 从{PostalContentComponent}中选择{pk},其中{uid} ='AboutEgyptPostContentComponent'


  

此查询将返回PostalContentComponentModel,一旦获得模型,就可以通过将语言环境作为" AR"传递来获取内容

 //将CommonI18NService作为Spring bean注入
  语言环境语言环境= i18NService.getLocaleForIsocode('AR');
 
  PostalContentComponentModel model =//从上述查询中获取模型
 
  字符串内容= model.getContent(locale);
 
 

  

一周热门 更多>