1
ホストデータベーステーブルからアプリケーションに入力される特殊文字をほとんど削除しないために、独自のデータ型を作成する必要がありました。そのsqlTypes()
int[] { Types.CHAR }
として定義される@Type(type = xxx)の列の列の長さを指定する
@Column(name="LAST_UPDATED_BY", nullable=false, length=24)
@Type(type="com.xx.CleanedString")
public String getLastUpdatedBy() {
return this.lastUpdatedBy;
}
public void setLastUpdatedBy(String lastUpdatedBy) {
this.lastUpdatedBy = lastUpdatedBy;
}
CleanedString
実装UserType
。基本的には、char配列を反復して特殊文字をフィルタリングした後にStringを再構築します。
public int[] sqlTypes() {
return new int[] { Types.CHAR };
}
アプリケーションは正常に動作しますが、問題が発生していますDBUnit
。 HibernateがHSQLDBでテーブルを作成すると(hibernate.hbm2ddl.auto
がcreate-drop
に設定されている)、長さが1のタイプCHARACTER
のカラムが作成されています。上記の24の長さの属性は無視されます。
この列に列の長さを指定する方法はありますか?
にそれを設定してみてください。 – phewataal