通常,在Hybris中,有模型拦截器(例如PrepareInterceptor),也就是说,当模型更改时,可以将其拦截。
我当时有问题。我想在与CategoryProductRelation相关的更改发生时进行拦截。因此,CategoryModel和ProductModel都不会更改.cat2prodrel表中只有一行更改,这不是模型更改的情况。当CategoryProductRelation更改时,您有任何要拦截的要约吗?

最佳答案

我解决了我的问题。就我而言,我导入INSERT_UPDATE和REMOVE CategoryProductRelation impex。是的,的确是在这些操作期间CategoryModel和ProductModel都没有更改,但是LinkModel却更改了。我通过查看'typeCode'编写了用于REMOVE操作的移除拦截器和用于INSERT_UPDATE操作的后保存侦听器。这是我的解决方案。

AfterSaveListener用于INSERT_UPDATE操作

 .....
//'143' is a typeCode of CategoryProductRelation
if(pk.getTypeCode()==143){

  Object model= modelService.get(pk);
  if(model instanceof LinkModel){
    ......
  }
  .....
}


Interceptor(RemoveInterceptor)用于REMOVE操作

 ......
 if(model instanceof LinkModel){
     final LinkModel linkModel = (LinkModel) model;
     PK pk=linkModel.getPk();
     .....
 }
 .....

07-24 19:59