2012-09-17 8 views
12

Eclipseにインポートされたmaven対応プロジェクトがあります。Eclipse:永続化ユニットに "system-uuid"という名前のジェネレータが定義されていません

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

プロジェクトは、コマンドラインから正しく構築します:Eclipseのことから、私は、システムUUID「という名前のジェネレータは、 『次の行のシステムUUID部分の』永続性ユニットで定義されていない」というエラーが表示されます。 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> 

答えて

33

あなたは環境設定の下でオフ/ダウンエラーを変えることができます - > Javaの持続性 - > JPA - 'クエリおよび発電機の下に>エラー/警告変更することにより、 '永続ユニットにジェネレータが定義されていません'というエラーが発生しました。

これはEclipseのDaliのHibernate Tools拡張のバグのようです。これをHibernate Toolsに報告するか、これはもっと新しいバージョンで修正されている可能性があります。

+1

を動作するようです。しかし、開発者がチェックするために、このエラーを置けば、私たちはpersistence.xmlで何かをするべきであると考えるために停止したい、しませんそう思う? :S –

+4

この回答はかなり古いようです。私はEclipse lunaをダウンロードしましたが、問題はまだ残っています。そんなに長い間バグが生きているとは思えません。これは本当にダリのバグですか? –

+0

これは私のために働いた。しかし、私は@IgnacioRubioに同意する必要があります。これによりエラーが抑制され、処理が進められます...しかし、なぜ最初にエラーがスローされますか?私は私の研究に基づいて解決策を見つけられませんでした。 –

1

Eclipseの新しいJPAサポートのバージョンは、注釈の順序に依存するようです。 emを使用しようとした後、ジェネレータを定義しています。

これは動作します:

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

Javaでのアノテーションの順序が意味を持ってはいけませんが。だからカレンはそうだ、それはバグだと思われる。

+1

私は新しいバグレポートを提出しました:https://bugs.eclipse.org/bugs/show_bug.cgi?id=474298 – roehrijn

+5

はどんな順序でもうまくいきませんでした – yair

+0

どちらの順序でもうまくいきませんでした。そして、Project> Clean ...(以下に示唆されています)はどちらの注文でも役に立たなかった。私は火星2(4.5.2)を使用しています。 – mbmast

0

私はgithubからプロジェクトをインポートした後、私のカスタムIDジェネレータを使用しました。

エラー: 「idGenEchantillon」という名前のジェネレータは

だから私の答えは、他の開発者がここで見ることができます鉱山と同じエラーを持つためではなく、メインの質問には、実際にはない永続性ユニットで定義されていない

コード:

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

私は、依存関係を管理するためにMavenを使用。

  1. 私のプロジェクトからJPAファセットを削除しました=> Mavenを使用して自分のプログラムを更新するたびに、プロジェクトはJPAファセットを再度取ります。
  2. Maven:Window >> Preferences >> Maven >> Java EE IntegrationのJPA Configuratorオプションを無効にして、JPA CONFIGURATORのチェックをはずした後、Mavenを使ってプロジェクトを更新しました=>エラーです行った。
5

Eclipseのルナ:あなたはこれが

Project -> Clean 
関連する問題