Подтвердить что ты не робот

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>
4b9b3361

Ответ 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 = > ошибка ушел.