我正在使用Play Framework 2.2(Java版本)和Ebean以及PostgreSQL的本地安装。在我的一个模型类MyClass
中,其中boolean
字段名为active
,我有一个方法myMethod
,看起来像这样:
public void myMethod() {
Logger.info("Start");
active = true;
update();
Logger.info("End");
}
出于某种原因,对update()
的调用永远不会返回,因此我的日志只会打印
[info] application - Start
然后不再:浏览器中的相应页面永远不会被加载,只是无限期地等待。如果我打开数据库日志记录,我可以看到准备好的语句:
[debug] c.j.b.PreparedStatementHandle - update myclass set active=true where [...]
看起来是正确的。
有没有人遇到过这个问题,或者对如何调查它有所了解?
我怀疑数据库可能存在某种锁定。如果我打开pgAdmin并尝试在活动列中手动插入TRUE,结果是pgAdmin停止并且必须强制关闭。