11

ローカルではmysqlを使用しているので、

 @Column(columnDefinition = "TEXT")

残念ながら、アプリケーションはさまざまなデータベースで実行する必要があります。どのデータベースが「まったく」あるかはわかりません。

同様の効果で、ほとんどのデータベースで機能するものを作成することは可能ですか?どうすればそれを達成できますか?

4

4 に答える 4

17

このようなものはどうですか?

@Lob
private String someString;

より移植性が高く、TEXTまたはLONG​​TEXTデータ型を効果的に生成する必要があると思います。

于 2013-02-28T13:32:40.553 に答える
2

@LOB を使用すると、DISTINCT を含む SQL で ORA-00932 例外が発生します ( http://ora-00932.ora-code.com/ )

解決策は、文字列のバイトサイズに依存すると思います。4000 バイト未満の場合は、 @Column(name = "...", length = 4000) を使用してみてください。

DB 互換性の理由から 4000 バイトをお勧めします。

  • Oracle Oracle 8 から Oracle 11g では、タイプ VARCHAR2 の最大サイズは 4000 (A4 ページ形式) です。
  • DB2 10 for z/OS では、タイプ VARCHAR の最大サイズは 32704 です
  • SQL Server 2012 では、タイプ TEXT の最大サイズは 2,147,483,647 バイトです
于 2013-08-13T10:37:35.947 に答える