2011-07-19 47 views
1

我正在开发一个非常简单的使用Play的应用程序,其中包含一个jQuery UI自动完成功能。此自动完成功能向服务器发送ajax请求,并带回id /值(使用Peter Hilton提供的代码片段)。我不想在播放中使用休眠缓存

我有硒测试重载一个问题: - 当我开始我在测试模式(游戏测试)应用程序,它加载ID /值存储DB(通过自举功能) - 当我启动我的Selenium测试,它会删除数据并使用相同的值加载测试数据,但使用新的ID(这似乎对我来说很正常) - 当测试运行时,自动完成返回旧ID /值而不是新ID,一个“找不到对象的ID NN” =>旧值似乎被加载到服务器缓存,但是播放文档解释了它,它不应该...

我检查我用@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 

请帮助...

回答

0

JPA使用Hibernate所以不要紧,你使用的注释。但我不认为这是一个hiberante问题,因为每个请求都应该得到一个新的Hibernate-Session。因此,用log-statements来分析你的代码,以确保它是一个休眠问题。

0

默认休眠只使用一个会话(这不是HTTP会话)的缓存,这基本上是只要一个请求的时间,见http://community.jboss.org/wiki/SessionsAndTransactions

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

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