web-dev-qa-db-ja.com

JPAに優先データ型を伝える方法

JPA(EclipseLink)を使用してテーブルを作成すると、文字列型はvarchar2(255)になります。 (アノテーションを介して)JPAにvarchar2(20)属性を作成するように指示するにはどうすればよいですか。

リストがある場合、JPAはBLOB(4000)を作成しますが、varchar2が必要です(シリアル化されたオブジェクトの文字列が短い)

これはどのように可能ですか?手作業で行う必要がありますか?

16
Marcel Menz

@ColumnアノテーションのcolumnDefinitionプロパティを使用する必要があります。つまり.

@Column(columnDefinition="varchar2(20)")
29
William

JPA(EclipseLink)を使用してテーブルを作成すると、文字列型はvarchar2(255)になります。 (アノテーションを介して)JPAにvarchar2(20)属性を作成するように指示するにはどうすればよいですか。

columnDefinitionを使用すると、あるデータベースから別のデータベースへの移植性が損なわれる可能性があります。文字列値の列の場合は、length要素(デフォルトは255)を使用することをお勧めします。

@Column(length=20)
String someString;
21
Pascal Thivent

@Columnアノテーションにlengthを次のように設定できます。

@Column(length = 20)

長さはテキスト列専用であることに注意してください。数値の場合は、precisionscaleを使用できます。

5
Steven Benitez
@Column(name = "doc_number", columnDefinition = "varchar2(20)")

ぜひお試しください。

3
Vladimir Ivanov