Eclipse: генератор с именем "system-uuid" не определен в модуле сохранения
У меня есть проект с поддержкой maven, импортированный в Eclipse. Из Eclipse я получаю сообщение об ошибке "Никакой генератор с именем" system-uuid "не определен в модуле сохранения" в части system-uuid следующих строк:
@Id @GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(length = 36)
public String getId() {
return id;
}
Проект строит правильно из командной строки. Что заставляет Eclipse генерировать эту ошибку и как ее исправить?
Файл с сохранением выглядит следующим образом.
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="xxxx"/>
</persistence>
Ответы
Ответ 1
Вы можете отключить/отключить ошибку в разделе "Настройки" → "Сохранение Java" → JPA → Ошибки/предупреждения в разделе "Запросы и генераторы", изменив ошибку "Генератор не определен в блоке персистентности" к предупреждению.
Это похоже на ошибку в расширении инструмента Hibernate Tools Dali в Eclipse. Вы можете сообщить об этом в Hibernate Tools или, возможно, это исправлено в более новой версии.
Ответ 2
Eclipse Luna: Это похоже на работу
Project -> Clean
Ответ 3
Новые версии поддержки JPA Eclipse, похоже, зависят от порядка аннотаций. Вы определяете генератор после того, как вы попытаетесь использовать em.
Это будет работать:
@Id
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@GeneratedValue(generator = "system-uuid")
@Column(length = 36)
public String getId() {
return id;
}
Однако порядок аннотаций в Java не должен иметь значения. Итак, Карен прав, кажется, это ошибка.
Ответ 4
У меня была почти такая же ошибка - я использовал свой собственный генератор идентификаторов - в eclipse mars после импорта моего проекта из github.
ошибка:
Генератор с именем "idGenEchantillon" не определен в модуле сохранения
Итак, мой ответ на самом деле не для основного вопроса, но для других разработчиков, имеющих ту же ошибку, что и моя, которую можно увидеть здесь.
код:
@Id
@GenericGenerator(name = "idGenEchantillon", strategy = "com.labo.model.KeyGenaratorForEchantillon")
@GeneratedValue(generator ="idGenEchantillon")
@Column(name = "ID_ECHANTILLON", length = 12)
private String idEchantillon;
Я использовал maven для управления зависимостями.
- Я удалил грань JPA из моего проекта = > каждый раз, когда я обновляю свой проект с помощью Maven, проект снова принимает фасет JPA = > ошибка.
- Я отключил опцию "Конфигуратор JPA" Maven: Окно → Настройки → Maven → Интеграция Java EE, затем снимите флажок "JPA CONFIGURATOR", после чего я обновил свой проект, используя Maven = > ошибка ушел.