代码之家  ›  专栏  ›  技术社区  ›  Amnon

链接修改的spring RepositoryEventHandler缺少目标

  •  0
  • Amnon  · 技术社区  · 4 年前

    我用的是 RepositoryRestController 公开REST端点以修改实体 X 它链接到另一个实体Y。

    class X {
        Set<Y> y_set;
    }
    

    我想在 Y 将添加或删除到 十、 .

    class MyAction {
        // initialised somehow
        XRepository xRepo;
    
        public void unlinkYFromX() {
           X x = xRepo.getAnX();
           // get a Y from the ones linked to X using some logic
           Y y = x.getYs().get(0);
           x.getYs().delete(y);
           xRepo.save(x);
           // I expect the event handlers to be trigger now
           // giving me a reference to x and y 
        }
    
    }
    

    我正试图定义一个 RepositoryEventHandler 带有注释为 HandleBeforeLinkSave :

    @RepositoryEventHandler
    class XYLinkHandler {
    
    @HandleBeforeLinkSave
     public void handleYLinkSave(X x, Object linked) {
            // do some code with the source X
            // and the newly linked Y
        }
    }
    

    问题是handler函数的第二个参数总是空的。换句话说,它不包含 Y 我正在链接。

    同样的现象(缺少链接引用)也会发生,无论它是在事件处理程序之前、之后、保存还是删除之前。

    有人遇到过这个问题吗? 有人有解决方案或变通方法吗?

    谢谢

    0 回复  |  直到 4 年前