Jakarta ee 如何在每次数据库更改时发送SSE

Jakarta ee 如何在每次数据库更改时发送SSE,jakarta-ee,server-sent-events,Jakarta Ee,Server Sent Events,我有一个控制器: @GET @Path("/info") @Produces(SseFeature.SERVER_SENT_EVENTS) public EventOutput findInfoFromDb() { new Thread(new Runnable() { @Override public void run() { try

我有一个控制器:

     @GET
       @Path("/info")
        @Produces(SseFeature.SERVER_SENT_EVENTS)
        public EventOutput findInfoFromDb() {
             new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(1000);
      final OutboundEvent.Builder eventBuilder = new OutboundEvent.Builder();
 Optional objectDTO = finder.findObject();
        eventBuilder.name("object");
        eventBuilder.mediaType(MediaType.APPLICATION_JSON_TYPE);
        eventBuilder.data(ObjectDTO.class, objectDTO);
OutboundEvent event = eventBuilder.build(); 
eventOutput.write(event);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }                }).start();
            return eventOutput;
        }

我面临的问题是,每次我在DB中更改某个内容时,都会得到几个响应。如何在aim中比较从DB获得的这些对象以仅显示更改的对象,而不刷新页面

据我所知,你应该收到第一个事件,并停止。您是否应该在每次数据库修改时公开eventOutput以触发,而不是使用线程?您能给我举一个您想要的示例吗?