我不希望hibernate缓存在播放



我正在用Play开发一个非常简单的应用程序,它包含一个jQuery UI自动完成。这个自动完成向服务器发送一个ajax请求并返回id/values(使用Peter Hilton提供的代码片段)。

我有一个问题与硒测试重新加载:当我在测试模式下启动应用程序时,它会在内存db中加载id/values(通过bootstrap功能)-当我启动我的selenium测试时,它删除数据并加载具有相同值的测试数据,但具有新的id(这对我来说似乎很正常)-当测试运行时,自动完成带回旧的id/值,而不是新的,我得到一个"对象未找到id nn"=>旧值似乎被加载到服务器缓存,但作为Play文档解释它,它不应该…

我检查了我使用的是@javax.persistence.Entity而不是休眠的@Entity

我也检查了我的application.conf,看起来正常:

%test.application.mode=dev
%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
%test.jpa.ddl=create-drop
%test.mail.smtp=mock

帮助请…

JPA使用Hibernate,所以使用哪个Annotation无关紧要。但我不认为这是一个hibernate问题,因为每个请求都应该得到一个新的hibernate会话。因此,使用日志语句分析您的代码,以确保这是一个hibernate问题。

默认情况下Hibernate只使用会话(这不是Http会话)缓存,它基本上与请求的持续时间一样长,参见http://community.jboss.org/wiki/SessionsAndTransactions

所以我不相信你给出的问题是Hibernate,除非你已经配置了二级缓存,并在你的实体上使用@Cache。

这可能是由简单的浏览器缓存引起的。尝试删除浏览器缓存

最新更新