在Hybris中,我是否创建使用数据验证框架检查用户uid的验证规则?

2020-09-12 07:02发布

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

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


我正在学习Hybris数据验证框架。 我看到我无法修改用户生成的类。 我应该使用beans-xml创建一个用户POJO来实现我所需要的吗?

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

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


我正在学习Hybris数据验证框架。 我看到我无法修改用户生成的类。 我应该使用beans-xml创建一个用户POJO来实现我所需要的吗?

付费偷看设置
发送
3条回答
浮生未央
1楼-- · 2020-09-12 07:35

您可以为模型实现验证拦截器。 请参阅: https://help.hybris.com/1808/hcd/8bfbf43e8669101480d0f060d79b1baa.html

示例(来自Hybris源代码)-为PriceRowModel创建PriceRowValidateInterceptor:

 软件包de.hybris.platform.product.impl;
 
  导入de.hybris.platform.catalog.model.CatalogVersionModel;
  导入de.hybris.platform.core.model.product.ProductModel;
  导入de.hybris.platform.core.model.product.UnitModel;
  导入de.hybris.platform.europe1.model.PDTRowModel;
  导入de.hybris.platform.europe1.model.PriceRowModel;
  导入de.hybris.platform.jalo.JaloInvalidParameterException;
  导入de.hybris.platform.servicelayer.interceptor.Interceptor;
  导入de.hybris.platform.servicelayer.interceptor.InterceptorContext;
  导入de.hybris.platform.servicelayer.interceptor.InterceptorException;
  导入de.hybris.platform.servicelayer.interceptor.PrepareInterceptor;
  导入de.hybris.platform.servicelayer.interceptor.ValidateInterceptor;
 
 
  公共类PriceRowValidateInterceptor实现ValidateInterceptor 
  {
 
      @Override
      公共无效onValidate(final PriceRowModel priceRow,final InterceptorContext ctx)引发InterceptorException
      {
          validateMinQuantity(priceRow);
          validateUnitFactor(priceRow);
      }
 
      私人无效validateMinQuantity(final PriceRowModel priceRow)引发InterceptorException
      {
          如果(priceRow.getMinqtd()== null || priceRow.getMinqtd()<0)
          {
              抛出新的InterceptorException("最小数量必须等于或大于零,但为" + priceRow.getMinqtd());
          }
      }
 
      私人无效validateUnitFactor(final PriceRowModel priceRow)引发InterceptorException
      {
          如果(priceRow.getUnitFactor()== null)
          {
              抛出新的InterceptorException(" Unit factor不能为空");
          }
          否则(priceRow.getUnitFactor()== 0)
          {
              抛出新的InterceptorException("单位因子不能为零");
          }
      }
  }
  
黑丝骑士
2楼-- · 2020-09-12 07:25

您可以创建自定义验证器。 这是一个示例: https://wiki.hybris.com/pages/viewpage.action?pageId=294094213

此处,您可以找到有关验证的很好的讨论。

xfwsx85
3楼-- · 2020-09-12 07:18

不使用注释,另一种方式是使用impex。 例如,请参阅#1: https://help.hybris.com/1808/hcd/7ed4232ec84a4fb683d43a2c38f54cfb.html

就像您说的那样,我认为您不能在模型中使用注释,因为注释在您每次构建时都会重新构建。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答