EJB提供错误的输出

时间:2012-04-24 15:00:31

标签: ejb-3.0

我正在调用本地EJB,它提取了一些评论列表。这里的每条评论都有一个特定的创建日期。从这里我需要获取最新评论所以我做的是检查最新时间然后使用这个时间获取最新评论并在UI上显示

现在,在测试相同的情况下,我遇到了一个问题,即在UI中它没有显示最新评论,而是在最新评论之前评论了一段时间。

例如:

我有comment1,comment2,comment3,comment4创建,其中comment1是最老的,comment4是最新的

现在,当我运行我的应用程序时,我在输出中得到comment3而不是comment4,这是预期的但是在我再次运行应用程序一小时后我可以看到comment4。

当我检查日志时,我实际上没有从EJB 获取comment4 现在这个EJB也被部署为web服务当我同时运行这个webservice时,我可以看到comment4以及

这是否是任何缓存问题。我无法理解问题是什么

如果需要更多详细信息,请告诉我

2 个答案:

答案 0 :(得分:0)

获取您可能已使用JPQL的注释,因为我认为

SELECT MAX(time) from comments 

通过这种方式,您可以获得带有时间戳的最新评论

检查您的数据是否正确查询..

答案 1 :(得分:0)

请参阅下面提取最新日期的逻辑。现在根据这个日期我提取最新评论

private Date getLatestNoteDate(List<AlarmNoteHistoryDTO> noteHistory ) {    
  Date tempDate=noteHistory.get(0).getTimeStamp();    
  for(AlarmNoteHistoryDTO alarmNoteHistory:noteHistory) {        
      if(alarmNoteHistory.getTimeStamp().after(tempDate)) {
        tempDate=alarmNoteHistory.getTimeStamp();
      }  
     return tempDate;
  }