0

プロジェクトでは、Hibernate実装でJPAを使用しています。すべてのエンティティは注釈ベースであり、persistence.xmlにリストされています。

すべてのエンティティはjarにパッケージ化されています。

列挙型への文字列であるいくつかのプロパティ(すべてのエンティティ)のtypedefを定義する必要があります。DBでは、列はvarcharです。どうすればこれを達成できますか?

hbm.xmlとhibernate-cfg.xmlを追加してこれを実現できますか?

前もって感謝します。

4

2 に答える 2

3

ドキュメントから直接:

@org.hibernate.annotations.TypeDefおよび@org.hibernate.annotations.TypeDefsを使用すると、型定義を宣言できます。これらのアノテーションは、クラスまたはパッケージレベルで配置できます。これらの定義は、セッションファクトリに対してグローバルであることに注意してください(クラスレベルで定義されている場合でも)。タイプが単一のエンティティで使用されている場合は、エンティティ自体に定義を配置できます。それ以外の場合は、定義をパッケージレベルで配置することをお勧めします。

于 2012-05-15T12:38:16.223 に答える
0

クラスを変更できないが、hibernate構成を変更できる場合は、hibernate.mapping.precedenceを「hbm、class」に変更してから、関連するクラスのアノテーションにすべての情報を含むhbmファイルを追加できると思います。UserTypeまたはEnumTypeを指定するためのhbm構文があります。それを使用する場合は、UserTypeクラスも定義する必要があります。

私の言葉を受け入れる前に、これをテストプロジェクトで試してみることをお勧めします。うまくいくと思いますが、よくわかりません。

すべての永続性情報をアノテーションからhbmにコピーするのは面倒で、情報が重複する可能性があります。可能であれば、クラス自体にアノテーションを追加する方法を見つけてください。

于 2012-07-25T07:17:04.797 に答える