JPA(EclipseLink)を使用してテーブルを作成すると、文字列型はvarchar2(255)になります。 (アノテーションを介して)JPAにvarchar2(20)属性を作成するように指示するにはどうすればよいですか。
リストがある場合、JPAはBLOB(4000)を作成しますが、varchar2が必要です(シリアル化されたオブジェクトの文字列が短い)
これはどのように可能ですか?手作業で行う必要がありますか?
@ColumnアノテーションのcolumnDefinitionプロパティを使用する必要があります。つまり.
@Column(columnDefinition="varchar2(20)")
JPA(EclipseLink)を使用してテーブルを作成すると、文字列型はvarchar2(255)になります。 (アノテーションを介して)JPAにvarchar2(20)属性を作成するように指示するにはどうすればよいですか。
columnDefinition
を使用すると、あるデータベースから別のデータベースへの移植性が損なわれる可能性があります。文字列値の列の場合は、length
要素(デフォルトは255)を使用することをお勧めします。
@Column(length=20)
String someString;
@Column
アノテーションにlength
を次のように設定できます。
@Column(length = 20)
長さはテキスト列専用であることに注意してください。数値の場合は、precision
とscale
を使用できます。
@Column(name = "doc_number", columnDefinition = "varchar2(20)")
ぜひお試しください。