我使用Postgresql DB(9,3)在Netbeans(8.0.2)中有一个不断增长的项目。我的问题是一个不返回当前数据的查询。我使用插入或更新查询将数据发布到数据库,我知道这是有效的,因为我可以在Postgresql pgadmin3实用程序中查看表结果。 但是,当我执行以下操作时,它将返回旧数据,而不是当前值: 我正在使用EJB和会话bean,这里是来自HrwattsModelFacade会话bean的代码(注意对em.clear()的调用,这只是我最近获取当前数据的尝试):
String ntvqrystr = "SELECT hrwatts_model.*, ";
ntvqrystr += "(SELECT tracks.id FROM tracks where tracks.user_id=?1 and hrwatts_model.track_id=tracks.id) as trkid, ";
ntvqrystr += "(SELECT tracks.starttime FROM tracks where tracks.user_id=?2 and hrwatts_model.track_id=tracks.id) as trkstrt ";
ntvqrystr += "from hrwatts_model order by trkstrt;";
em.clear();
Query qry = em.createNativeQuery(ntvqrystr, HrwattsModel.class);
List<HrwattsModel> qlst;
qry.setParameter(1, usr.getId()).setParameter(2, usr.getId());
qlst=qry.getResultList();
return qlst;
我已经尝试了em.clear(),请参阅上面的代码和注释
@TransactionAttribute(REQUIRES_NEW)
除了等待15-20分钟或重新启动glassifsh然后我得到当前数据之外似乎没有任何作用。退出/退出(清除会话)不起作用!