【问题标题】:query does not return current data查询不返回当前数据
【发布时间】:2015-04-19 18:52:27
【问题描述】:

我在 Netbeans (8.0.2) 中有一个使用 Postgresql DB (9,3) 的不断增长的项目。我的问题是一个不返回当前数据的查询。我使用插入或更新查询将数据发布到数据库,我知道这是可行的,因为我可以在 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 之外似乎没有任何效果,然后我得到当前数据。注销/登录(清除会话)不起作用!

【问题讨论】:

  • 日志事务分界(有关日志设置,请参阅 PostgreSQL 配置文件)。我想知道您是否正在使用看到旧快照的长 SERIALIZABLE 事务。

标签: sql ejb postgresql-9.3 netbeans-8


【解决方案1】:

您是否使用任何 ORM 框架,例如 Hibernate 或 EclipseLink?看起来缓存是原因(阅读关于二级捕获)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多