2012-09-17 11 views
12

Mam projekt włączany przez maven, zaimportowany do Eclipse. Z Eclipse, otrzymuję komunikat o błędzie „Nie generator o nazwie«System-uuid»jest zdefiniowany w module utrwalania” na części systemu-uuid z następujących linii:Eclipse: Żaden generator o nazwie "system-uuid" nie został zdefiniowany w jednostce trwałości

@Id @GeneratedValue(generator = "system-uuid") 
@GenericGenerator(name = "system-uuid", strategy = "uuid") 
@Column(length = 36) 
public String getId() { 
    return id; 
} 

Projekt opiera się poprawnie z wiersza poleceń. Co powoduje, że Eclipse generuje ten błąd i jak go naprawić?

Plik upór wygląda następująco ..

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

Odpowiedz

33

Można włączyć błąd off/dół pod Preferencje -> Java Persistence -> JPA -> Błędy/ostrzeżenia pod "Zapytania i wytwórców, zmieniając błąd "Generator nie jest zdefiniowany w jednostce utrwalania" na ostrzeżenie.

Wygląda to na błąd w rozszerzeniu narzędzia Hibernacja w Dali w środowisku Eclipse. Możesz zgłosić to do narzędzi hibernacji lub może to naprawić w nowszej wersji.

+1

Ale jeśli deweloperzy umieścić ten błąd należy sprawdzić, chciałbym zatrzymać się pod uwagę, że powinniśmy zrobić coś w persistence.xml, prawda tak myślę? : S –

+4

Ta odpowiedź wydaje się dość stara. Właśnie pobrałem Eclipse Luna i problem nadal istnieje. Nie mogę uwierzyć, że błąd będzie żył przez tak długi czas. Czy to naprawdę błąd Dali? –

+0

To zadziałało dla mnie. Jednak muszę zgodzić się z @IgnacioRubio. To pomija błąd i pozwól nam kontynuować ... jednak, dlaczego błąd jest rzucany w pierwszej kolejności?Nie znalazłem rozwiązania na podstawie moich badań. –

1

Nowsze wersje obsługi JPA Eclipse zależą od kolejności adnotacji. Definiujesz generator po próbie użycia em.

to będzie działać:

@Id 
@GenericGenerator(name = "system-uuid", strategy = "uuid") 
@GeneratedValue(generator = "system-uuid") 
@Column(length = 36) 
public String getId() { 
    return id; 
} 

Jednak kolejność adnotacji w Javie nie musi mieć znaczenia. Karen ma rację, wygląda na to, że to błąd.

+1

Złożyłem nowy raport o błędzie: https://bugs.eclipse.org/bugs/show_bug.cgi?id=474298 – roehrijn

+5

nie działa dla mnie w dowolnej kolejności – yair

+0

Nie działa dla mnie w dowolnej kolejności. A projekt> Czystość ... (sugerowany poniżej) nie pomógł w żadnej z kolejności. Używam Mars.2 (4.5.2). – mbmast

0

Miałem prawie ten sam błąd - użyłem mojego niestandardowego generatora id - w Eclipse Mars po zaimportowaniu mojego projektu z github.

błąd: Nie generator o nazwie „idGenEchantillon” jest zdefiniowany w module utrwalania

Więc moja odpowiedź nie jest naprawdę do głównego pytania, ale dla innych deweloperów mających ten sam błąd jak ja, który można zobaczyć tutaj .

kod:

@Id 
@GenericGenerator(name = "idGenEchantillon", strategy = "com.labo.model.KeyGenaratorForEchantillon") 
@GeneratedValue(generator ="idGenEchantillon") 
@Column(name = "ID_ECHANTILLON", length = 12) 
private String idEchantillon; 

użyłem maven do zarządzania zależnościami.

  1. Usunąłem aspekt JPA z mojego projektu => za każdym razem, gdy aktualizuję swój prjekt przy użyciu Mavena, projekt ponownie przyjmuje aspekt JPA => błąd zostaje.
  2. Wyłączyłem opcję "JPA Configurator" w Maven: Okno >> Preferencje >> Maven >> Integracja Java EE, następnie odznacz "KONFIGURATOR W JPA", potem zaktualizowałem swój projekt za pomocą Maven => błąd jest odszedł.
5

Eclipse Luna: To wydaje się działać

Project -> Clean 
Powiązane problemy