columnDefinition = "текст" для всех типов баз данных

локально я использую mysql, поэтому, когда я использую

 @Column(columnDefinition = "TEXT")

к сожалению, приложение также должно работать в разных базах данных, мне не сказали, какие из них просто "вообще".

можно ли сделать что-нибудь с аналогичным эффектом, но работать в большинстве баз данных? Как я могу достичь этого?

2 ответов


Как насчет чего-то вроде этого:

@Lob
private String someString;

Я думаю, что он более переносим и должен эффективно генерировать текст или тип данных LONGTEXT.


Если вы используете @LOB, у вас будет исключение ORA-00932 с SQL, содержащим DISTINCT (http://ora-00932.ora-code.com/)

Я думаю, что решение зависит от размера байта строки. Если его

Я предлагаю 4000 байт для DB comptibility причина :

  • в oracle Oracle 8 к Oracle 11g, тип VARCHAR2 максимальный размер 4000 (формат страницы A4)
  • в DB2 10 для z/OS, тип VARCHAR максимальный размер 32704
  • в SQL Server 2012 введите максимальный размер текста 2,147,483,647 байт