【问题标题】:I do NOT want hibernate caching in Play我不想在 Play 中进行休眠缓存
【发布时间】:2011-07-19 13:27:03
【问题描述】:

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

我对 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

请帮忙...

【问题讨论】:

    标签: hibernate jquery-ui selenium playframework


    【解决方案1】:

    JPA 使用 Hibernate,因此您使用哪个 Annotation 并不重要。但我不认为这是一个休眠问题,因为每个请求都应该获得一个新的休眠会话。因此,请使用日志语句分析您的代码,以确保它是一个休眠问题。

    【讨论】:

      【解决方案2】:

      默认Hibernate只使用一个session(这不是Http Session)缓存,基本上和一个请求的时长一样长,见http://community.jboss.org/wiki/SessionsAndTransactions

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 1970-01-01
        • 2012-03-09
        • 2016-08-13
        • 2019-02-26
        • 2012-04-29
        • 2015-01-05
        相关资源
        最近更新 更多