12

Hibernate hbm2ddl ツールを使用してデータベース DDL を生成する JPA/Hibernate データ モデルがあります。データベースには、CHAR である必要がある文字列と VARCHAR である可能性がある文字列があります。DDL の手作業による編集を最小限に抑えたいと考えています (いくつかは行わなければならないことを認識しています)。

これについてどうすればよいか知っている人はいますか?ハッキングされた方言を介してすべての文字列 VARCHARS または CHARS を作成できることを認識していますが、それはデータベースで常に適切なものではありません。

クラスのカスタム列定義テキストを避けて、注釈または aop を使用してこれを実行できるようにしたいと考えています。

ありがとう。

4

2 に答える 2

15

データベース内の CHAR にマップする文字列に注釈を付けます @Column(columnDefinition="CHAR(<your-char-length>)")

于 2010-02-18T19:13:09.967 に答える
4

それで、私はついに方言のタイプの長さ制限を指定できることを発見しました。したがって、長さが10未満のものはすべてcharであり、それを超えるものはvarcharである必要があると判断しました。

registerColumnType( Types.VARCHAR, 10, "char($l)" );

それは私が望んでいたことではありませんが、それで十分です。以前にそれを見つけられなかったのは悲しいことです。

于 2010-02-19T16:55:24.147 に答える