3

我想注释我的许多包含参考数据和/或配置数据的 Hibernate 实体

@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)

但是,我的 JUnit 测试正在使用 Hibernate 实体设置和拆除这些参考/配置数据。是否有推荐的方法让实体在测试设置和拆卸期间进行读写,但对生产代码来说是只读的?

我对非理想解决方法的两个直接想法是:

  • 使用 NONSTRICT_READ_WRITE,但我不确定隐藏的缺点是什么。
  • 在我的测试代码中创建子类实体以覆盖只读缓存注释。

有关处理此问题的最干净方法的任何建议?

(注意:项目使用 maven。)

4

1 回答 1

0

回答我自己的问题:

使用 NON_STRICT_READ_WRITE 是一个合理的解决方案,它具有 READ_ONLY 的大部分优点,但允许您的测试代码插入和更新实体。

请记住在测试设置期间驱逐任何缓存的项目,以确保您没有读取过时的测试数据。(例如 evictQueries())。

于 2010-09-21T03:05:22.773 回答