@Cache注解的使用错误(@Cache annotation usage error)

2019-08-31 17:55发布

我增加了以下注释,以使高速缓存到我的EJB3实体之一,测试与缓存ehcache的,在这里我使用Hibernate作为持久性提供:

....
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

@Entity
@Table(name = "F")
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
@NamedQueries({ @NamedQuery(name = "F.findAll", query = "SELECT f FROM F f")})
public class F implements Serializable {
   .....
}

我增加了以下内容的persistence.xml:

<property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/>
<property name="hibernate.cache.provider_configuration_file_resource_path" value="/ehcache.xml"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>

当我尝试编译我收到以下错误:

/persistence/F.class):警告:找不到标注方法“的使用()”在类型“org.hibernate.annotations.Cache”:类文件org.hibernate.annotations.Cache未发现异常发生在编译器(1.6.0_16)。 请Java Developer Connection的(提交错误http://java.sun.com/webapps/bugreport检查重复的Bug大游行后)。 包括你的程序,并在报告以下诊断。 谢谢。 com.sun.tools.javac.code.Symbol $ CompletionFailure:为org.hibernate.annotations.CacheConcurrencyStrategy类文件未找到

谁能帮我在这里,让我知道我需要做什么或做错了目前?

Answer 1:

@org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE)

将解决这个问题



Answer 2:

嗯..我得到它的最终奏效。 它的修复是真的很奇怪,真的似乎是一个报告的bug。

我需要做的是给所有的Hibernate库添加到我的Netbeans网/战争项目也是如此。 一旦我做到了,错误就走开了。

因为Hibernate库已经列入这也是在web项目库中的EAR项目,这是奇怪的。



Answer 3:

你没有做错什么 - 你的注解是罚款。

该错误消息来看这是一个编译器错误。 您可以:

  1. 更新到最新的JDK版本 (1.6.0_16-B01)。
  2. 重新安排你的注释,并希望编译器故障而不会被触发。 是的,这听起来很傻,但我已经使用@Cache广泛的声明(我敢肯定,很多其他人所做的那样),我有编译意味着你刚刚得到(联合国)幸运没有问题。
  3. 尝试不同的编译器(从Eclipse构建)
  4. 提交给Sun的bug报告


Answer 4:

你只需要休眠的注解jar添加到您的Web /战项目。



Answer 5:

我通过提供改变Hibernate库在一个maven多模块项目的POM 编译解决了这个。



文章来源: @Cache annotation usage error