eclipseで生成されたhibernate beanをj2ee Webプロジェクトに含めるために、ソースリンクを使用しています。私たちには、主なプロジェクト以外の様々なユーティリティやサービスを含むプロジェクトがあります。Webプロジェクトの@Versionブレーク
私たちのBeanをユーティリティプロジェクトにインポートすると、Beanは正常にインポートされます。彼らは4.3で休止状態になっており、休止状態のjpa 2.1 jarを持っています。しかし、メインのプロジェクトに同じモデルのBeanをインポートすると、@Versionアノテーションにコンパイルエラーが発生します。それは言う:
JSR 220:Java Persistence API、9.1.17:バージョンのプロパティには、int、Integer、short、Short、long、Long、Timestampの3種類がサポートされています。
コードは次のとおりです。
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UPDT_TMSTMP", nullable = false)
@Version
private Date updateTimestamp;
私は、単純なJavaプロジェクトにインポートするときに完全に動作しますが、(私たちはカップルを試してみました)Webモジュールにインポートするときに、このエラーを取得し、言ったように。エラー・テキストは、プロパティ・タイプにjava.util.Dateを使用できないと言っているようですが、ユーティリティ・プロジェクトにインポートする前に再度使用しました。
私たちはなぜユーティリティプロジェクトとWebモジュールの違いについて説明するのが駄目です。同じモデルBeanを何度もインポートしなくても、これらのユーティリティモジュールを動かすことができるようにするために、Webモジュールでこの機能を使用したいと思っています。
アイデア?調査の道のりは、私たちが現在持っているよりも良いでしょう。私たちは驚いています。
Eclipseプラグイン(JPAプラグインなど)のエラーではなく、コンパイルエラーですか? Javaコンパイラは、アノテーションを持つフィールドにはどのような型があるか気にしません。したがって、おそらく、エラーはJPA統合プラグインから発生します。これは、間違った構成パス(JPAが他のプロジェクトと同じように古いバージョンに設定されている場合)によって引き起こされる可能性があります。 – dunni
java.util.Dateの代わりにjava.sql.Dateを使用しようとしましたか? データベースがミリ秒の精度でタイムスタンプを保存するように設定されているかどうかを確認することもできます。 – fg78nc
また、java.sql.Timestampを使用することもできます – fg78nc