Ошибка использования аннотации @Cache - PullRequest
9 голосов
/ 23 октября 2009

Я добавил следующую аннотацию для включения кеширования в одну из моих сущностей 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"/>

И когда я пытаюсь скомпилировать, я получаю следующую ошибку:

/ постоянство / F.class): предупреждение: невозможно найти метод аннотации 'using ()' в тип 'Org.hibernate.annotations.Cache': файл класса для org.hibernate.annotations.Cache not найдено Исключение произошло в компилятор (1.6.0_16). Пожалуйста, сообщите об ошибке в соединении разработчика Java (http://java.sun.com/webapps/bugreport) после проверки Bug Parade для дубликаты. Включите вашу программу и следующая диагностика в вашем отчет. Спасибо. com.sun.tools.javac.code.Symbol $ CompletionFailure: файл класса для org.hibernate.annotations.CacheConcurrencyStrategy не найдено

Может кто-нибудь помочь мне здесь и дать мне знать, что мне нужно делать или я делаю что-то не так в настоящее время?

Ответы [ 5 ]

3 голосов
/ 09 сентября 2017
@org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE)

решит проблему

2 голосов
/ 18 ноября 2009

Хорошо .. Я получил его на работу в конце концов. Исправление для этого действительно странно и действительно, похоже, сообщается об ошибке.

Мне нужно было добавить все библиотеки Hibernate в мой сетевой / военный проект Netbeans. Как только я это сделал, ошибки исчезли.

Это было странно, потому что библиотеки Hibernate уже были включены в проект ear, который также был в библиотеке веб-проектов.

0 голосов
/ 21 июня 2011

Я решил эту проблему, изменив библиотеки гибернации с при условии на скомпилировать в pom мультимодульного проекта maven.

0 голосов
/ 14 сентября 2010

Вам нужно всего лишь добавить баночки спящих аннотаций в ваш веб / военный проект.

0 голосов
/ 23 октября 2009

Вы не делаете ничего плохого - ваши аннотации в порядке.

Судя по сообщению об ошибке, это ошибка компилятора. Вы можете:

  1. Обновление до последней версии JDK (1.6.0_16-b01).
  2. Переставьте свои аннотации и надейтесь, что ошибка компилятора не будет вызвана. Да, это звучит глупо, но я широко использовал объявления @Cache (как, я уверен, многие другие), и у меня нет проблем с компиляцией, то есть вам просто (не) повезло.
  3. Попробуйте другой компилятор (сборка из Eclipse)
  4. Отправить отчет об ошибке в Sun.
...