Я пытаюсь запустить приложение на MySQL (для производства) и H2 (для dev/testing). Сценарий My (Flyway) для создания таблиц теперь почти идентичен, за исключением столбца, который должен быть объявлен «LONGTEXT» для MySQL. Если я использую это для H2 (который работает в режиме совместимости с MySQL), я получаю:MySQL LONGTEXT с встроенной базой данных h2
Wrong column type in public.public.customer_license for column license.
Found: clob, expected: varchar(65535)
Java-код моего лица:
@Column(name = "license", length = 65535)
private String m_license;
Если я изменяю заявление колонки к VARCHAR (65535), то она работает на H2, но не для MySQL:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Column length too big for column 'license'
(max = 21845); use BLOB or TEXT instead
Как я могу заставить его работать на обоих?
'тип данных BLOB' также доступен с H2. Вы можете использовать его как в H2, так и в MySQL. Здесь http://www.h2database.com/html/datatypes.html#blob_type –
MySQL, похоже, не нравится. Я получаю 'Неверный тип столбца в flux_licenses.customer_license для разрешения столбца. Найдено: blob, expected: longtext' –
Я поддерживал 3 базы данных в своем проекте, но все три имеют разные классы и разные методы. Я использовал BLOB вместо LONGTEXT –