Боюсь, я не смог найти ничего полезного в Google по следующей проблеме.
Проблема
в моей Spring Boot (3.3.3) ) app создание таблицы в MariaDB (Docker, mariadb:11.2.2-jammy) завершается неудачей для следующего объекта:
@Entity
public final class Answer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
@Column(columnDefinition="LONGTEXT")
private String text;
}
Журналы
Hibernate: create table `answer` (`id` bigint not null, `text` `LONGTEXT` not null, primary key (`id`)) engine=InnoDB
2024-09-19 23:59:21.367 [main] WARN o.m.jdbc.message.server.ErrorPacket : Error: 4161-HY000: Unknown data type: 'LONGTEXT'
2024-09-19 23:59:21.367 [main] WARN o.h.t.s.i.ExceptionHandlerLoggedImpl: GenerationTarget encountered exception accepting command : Error executing DDL "create table `answer` (`id` bigint not null, `text` `LONGTEXT` not null, primary key (`id`)) engine=InnoDB" via JDBC [(conn=415) Unknown data type: 'LONGTEXT']
Причина
Проблема в том, что в сгенерированном коде SQL LONGTEXT заключен в кавычки. Я могу вручную запустить код при удалении кавычек. Я не понимаю, почему здесь кавычки.
Основная причина?
Есть идеи?
Дополнительная информация:
pom.xml
org.springframework.boot
spring-boot-starter-data-jpa
com.h2database
h2
runtime
org.mariadb.jdbc
mariadb-java-client
3.4.1
Строки конфигурации среды в Dockerfile:
- SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/${MYSQL_DATABASE}
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.mariadb.jdbc.Driver
- SPRING_DATASOURCE_INITIALIZATION_MODE=always
- SPRING_H2_CONSOLE_ENABLED=false
- SPRING_JPA_HIBERNATE_DDL_AUTO=${SPRING_JPA_HIBERNATE_DDL_AUTO}
- SPRING_JPA_SHOW_SQL=true
- SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.MariaDBDialect
Файл .env для Dockerfile
MYSQL_DATABASE=redacted
SPRING_JPA_HIBERNATE_DDL_AUTO=create
SPRING_H2_CONSOLE_ENABLED=false
Подробнее здесь: https://stackoverflow.com/questions/790 ... d-database
Hibernate(?) цитирует тип данных при создании базы данных ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение