2016-09-16 4 views
0

SQL Serverに生成されたカラム 'Text'タイプでいくつかのthoublesを使用しています。 PostgreSQLを使用する場合、同じクラスアノテーションがうまく動作します。JPA EclipseLinkを使用してSQL Serverでvarchar(max)カラムを生成する方法

私が試した:

@Lob 
@Column(name = Columns.largeJsonText, length = 1048576) 
protected String largeJsonText; 

しかし、両方が 'テキスト' 列の型を生成します。

@Lob 
@Column(name = Columns.largeJsonText) 
protected String largeJsonText; 

、これを。

私は、Eclipseのリンクの以下のバージョンを使用しています:

 <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
     <version>2.6.2</version> 

それはSQL Server用のvarchar(MAX)列を生成することが可能ですか?どうやって? ありがとう!

+0

あなたはcolumnDefinition = "VARCHAR()" を指定しようとしたことがありますか?これにより、データベース固有の列定義を使用できます。長さの値を指定してClobアノテーションを削除してみてください。それ以外の場合は、データベースで使用されている特定のDatabasePlatformサブクラスのClob定義に返される型を変更するために、EclipseLinkの特定のAPIに侵入する必要があります。値をオーバーライドする独自のサブクラスを定義するか(buildFieldTypesメソッドを参照)、セッションカスタマイザで変更することができます。 – Chris

+0

それは私が必要としたものです。私は正しい文書を見つけることができませんでした。あなたはトピックを深く理解するためのリンクを提供してください。ありがとう! –

答えて

0

JPAおよびSQL Serverで作成するための正しい方法は次のとおりです。

@Column(name = "fieldName", columnDefinition = "VARCHAR(1337)") 
private String someString; 

https://stackoverflow.com/a/43457020/5626568

関連する問題