web-dev-qa-db-ja.com

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

エラーを変更することにより、[設定]-> Java永続性-> JPA-> [クエリとジェネレーター]の下のエラー/警告]でエラーをオフ/ダウンできます 'ジェネレーターは永続性ユニットで定義されていません'警告に。

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

36
Karen Butzke

Eclipse Luna:これはうまくいくようです

Project -> Clean
6
jeff

Githubからプロジェクトをインポートした後、Eclipsemarsでほぼ同じエラーが発生しました(カスタム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の「JPAConfigurator」オプションを無効にしました:ウィンドウ>>設定>> Maven >> Java EE Integration、次に「JPA CONFIGURATOR」のチェックを外し、その後、を使用してプロジェクトを更新しましたMaven =>エラーはなくなりました。
0
Saadane Othmane