背景は次のとおりです。フィールドを持つ注釈付きの@Embeddable
Java クラスがありGregorianCalendar
ます。hibernate3:hbm2ddl を使用して、hibernate3 Maven プラグインを介してスキーマを生成しようとしています。これにより、これが埋め込まれている別のオブジェクトを永続化できますが、の使用に関するエラーが発生します@Temporal
。
埋め込み可能なクラスは次のとおりです。
@Embeddable
public class OperationalStatus implements Serializable {
.
.
.
/**
* Recorded date/time that the status value is valid
*/
private GregorianCalendar time;
/**
* No-argument constructor.
*/
public OperationalStatus() {}
.
.
.
/**
* @return the time
*/
@Temporal(TemporalType.TIMESTAMP)
public GregorianCalendar getTime() {
return time;
}
/**
* @param time the time to set
*/
public void setTime(GregorianCalendar time) {
this.time = time;
}
}
そして、ここにエラーの読み出しがあります:
[エラー] プロジェクト STRIPES_V2 でゴール org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm 2ddl (default-cli) を実行できませんでした: ゴール org.code haus.mojo:hibernate3-maven-plugin のデフォルト cli を実行します:2.2:hbm2ddl が失敗しました: @Temporal は、java.util.Date または java.util.Calendar プロパティでのみ設定する必要があります: strips.datamodel。util.OperationalStatus.time
以下は、pom からの抜粋です。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
<componentProperties>
<drop>false</drop>
<configurationfile>src/main/resources/hibernate.cfg.xml</configurationfile>
<outputfilename>schema.sql</outputfilename>
</componentProperties>
</configuration>
<dependencies>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.2-1000.jdbc4</version>
</dependency>
</dependencies>
</plugin>
.
.
.
<dependency>
<groupId>org.hibernate</groupId>
<version>4.1.7.Final</version>
<artifactId>hibernate-core</artifactId>
</dependency>
私は何が欠けていますか?GregorianCalendar は Calendar の具体的な拡張機能ですが、何が問題なのですか?