【问题标题】:Is it possible to intercept relation like CategoryProductRelation in Hybris?是否可以在 Hybris 中拦截 CategoryProductRelation 之类的关系?
【发布时间】:2018-04-06 14:46:10
【问题描述】:
通常情况下,在Hybris中,会有PrepareInterceptor等模型拦截器。也就是说,当模型发生变化时,可以进行拦截。
那个时候我有个问题。我想在发生与 CategoryProductRelation 相关的更改时进行拦截。 CategoryModel 和 ProductModel 都不会因此而改变。只是 cat2prodrel 表中的一行发生了变化。这不是模型变化的情况。当 CategoryProductRelation 发生变化时,你有什么要拦截的吗?
【问题讨论】:
标签:
java
spring
sap
interceptor
hybris
【解决方案1】:
我解决了我的问题。在我的例子中,我导入了 INSERT_UPDATE 和 REMOVE CategoryProductRelation impex。是的,CategoryModel 和 ProductModel 在这些操作期间都不会发生变化,但 LinkModel 会发生变化。我通过查看“typeCode”为 REMOVE 操作编写了一个删除拦截器,并为 INSERT_UPDATE 操作编写了一个保存后侦听器。这是我的解决方案。
用于 INSERT_UPDATE 操作的 AfterSaveListener
.....
//'143' is a typeCode of CategoryProductRelation
if(pk.getTypeCode()==143){
Object model= modelService.get(pk);
if(model instanceof LinkModel){
......
}
.....
}
用于 REMOVE 操作的拦截器(RemoveInterceptor)
......
if(model instanceof LinkModel){
final LinkModel linkModel = (LinkModel) model;
PK pk=linkModel.getPk();
.....
}
.....