проблема следующие: мы используем, в спящем режиме с аннотациями как Картопостроитель O/R.
Некоторые @Column аннотации похожи:
@Column(columnDefinition = "longblob", name = "binaryData", nullable = true)
или
@Column(columnDefinition = "mediumtext", name = "remark", nullable = true)
причем атрибуты columnDefinition mysql конкретны
на пост-ГРЭС, например, значения columnDefinition должны быть "bytea" и "varchar (999999)"
и на оракуле, вероятно, что-то еще.
Проблемы возникают в настоящее время во время Экспорта Схемы, например, при создании операторов DDL.
Возможные обходные решения, о которых я могу думать, - Взлом некоторый драйвер JDBC, который делает текстовую замену (например, longblob-> bytea) для операторов DDL. Это ужасно, но будет работать так или иначе - Использование в спящем режиме конфигурация XML вместо аннотаций. Это будет, вероятно, работать, но я предпочитаю аннотации
Кто-либо знает какие-либо альтернативы? Будьте в спящем режиме определенные обходные решения в порядке, например, если атрибут columnDefinition может содержать диалект определенные значения как
@Column(columnDefinition = "mysql->mediumtext, postgres->varchar(999999)", name = "remark", nullable = true)
Спасибо Holger
Почему бы вам не использовать такие аннотации для диагностики базы данных:
@Lob
(в свойстве байт[]
или String
)@Column(length=90000)
(в свойстве String
)и посмотреть, какие столбцы будут сгенерированы в базе данных. Скорее всего, они будут такого типа.
.Некоторые идеи:
Например, я изменил символ конкатенации с '||' на Oracle на '+' на SqlServer.
. Это удобно сделать во время выполнения :-)