プロジェクトでは、Hibernate実装でJPAを使用しています。すべてのエンティティは注釈ベースであり、persistence.xmlにリストされています。
すべてのエンティティはjarにパッケージ化されています。
列挙型への文字列であるいくつかのプロパティ(すべてのエンティティ)のtypedefを定義する必要があります。DBでは、列はvarcharです。どうすればこれを達成できますか?
hbm.xmlとhibernate-cfg.xmlを追加してこれを実現できますか?
前もって感謝します。
ドキュメントから直接:
@org.hibernate.annotations.TypeDefおよび@org.hibernate.annotations.TypeDefsを使用すると、型定義を宣言できます。これらのアノテーションは、クラスまたはパッケージレベルで配置できます。これらの定義は、セッションファクトリに対してグローバルであることに注意してください(クラスレベルで定義されている場合でも)。タイプが単一のエンティティで使用されている場合は、エンティティ自体に定義を配置できます。それ以外の場合は、定義をパッケージレベルで配置することをお勧めします。
クラスを変更できないが、hibernate構成を変更できる場合は、hibernate.mapping.precedenceを「hbm、class」に変更してから、関連するクラスのアノテーションにすべての情報を含むhbmファイルを追加できると思います。UserTypeまたはEnumTypeを指定するためのhbm構文があります。それを使用する場合は、UserTypeクラスも定義する必要があります。
私の言葉を受け入れる前に、これをテストプロジェクトで試してみることをお勧めします。うまくいくと思いますが、よくわかりません。
すべての永続性情報をアノテーションからhbmにコピーするのは面倒で、情報が重複する可能性があります。可能であれば、クラス自体にアノテーションを追加する方法を見つけてください。