Как устранить проблему: «Значения типов «BINARY(255)» и «CHARACTER VARYING(255)» несопоставимы» при заполнении данных в JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как устранить проблему: «Значения типов «BINARY(255)» и «CHARACTER VARYING(255)» несопоставимы» при заполнении данных в

Сообщение Anonymous »

При работе над проектом Java с использованием технологий, представленных ниже:

Код: Выделить всё

11
UTF-8





org.springframework.boot
spring-boot-starter-web



org.springframework.boot
spring-boot-starter-data-jpa




org.springframework.boot
spring-boot-starter-test
test


junit
junit
3.8.1
test



com.h2database
h2
2.1.214 
runtime



org.projectlombok
lombok
1.18.24



com.fasterxml.jackson.core
jackson-databind






org.springframework.boot
spring-boot-maven-plugin




org.apache.maven.plugins
maven-compiler-plugin
3.8.1



org.projectlombok
lombok
1.18.24






Файл application.properties:

Код: Выделить всё

spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:schema.sql
spring.sql.init.data-locations=classpath:import.sql
server.port=8081
spring.jpa.show-sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql=TRACE
spring.h2.console.path=/h2-console

Я получаю сообщение об ошибке выполнения, например:

Код: Выделить всё

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Values of types "BINARY(255)" and "CHARACTER VARYING(255)" are not comparable;  SQL statement:
alter table backlog_item_tasks add constraint FKigou96u26bqhftbug6ba1akfa foreign key (tasks_id) references task [90110-214]

...

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Values of types "BINARY(255)" and "CHARACTER VARYING(255)" are not comparable; SQL statement:
alter table backlog_item_tasks add constraint FK1jlaqd1fh1t60yjn2mu179ra1 foreign key (backlog_item_id) references backlog_item [90110-214]

...

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Values of types "BINARY(255)" and "CHARACTER VARYING(255)" are not comparable; SQL statement:
alter table estimation_log_entry add constraint FK4qne2wpk2c906qwlb0qt17k7s foreign key (task_id) references task [90110-214]
Проверено:
Я пытаюсь заполнить базу данных h2 необходимыми данными через предварительный подготовленные SQL-скрипты, например, import.sql (

Код: Выделить всё

DML script
):

Код: Выделить всё

INSERT INTO backlog (id, name, description)
VALUES ('uuid-1', 'Backlog 1', 'Description for backlog 1');
INSERT INTO backlog_item (id, status, story, story_points, summary, type, product_id, release_id, sprint_id, backlog_id)
VALUES ('uuid-2', 'Open', 'Story 1', 5, 'Summary for story 1', 'Feature', 'uuid-product', 'uuid-release', 'uuid-sprint',
'uuid-1');
INSERT INTO task (id, name, description, hours_remaining, volunteer, backlog_item_id)
VALUES ('uuid-3', 'Task 1', 'Description for task 1', 10, 'Volunteer 1', 'uuid-2');
и, соответственно, Schema.sql (

Код: Выделить всё

DDL script
):

Код: Выделить всё

CREATE TABLE backlog
(
id          VARCHAR(255) PRIMARY KEY,
name        VARCHAR(255) NOT NULL,
description TEXT
);

CREATE TABLE backlog_item
(
id           VARCHAR(255) PRIMARY KEY,
status       VARCHAR(255),
story        TEXT,
story_points INT,
summary      TEXT,
type         VARCHAR(255),
product_id   VARCHAR(255),
release_id   VARCHAR(255),
sprint_id    VARCHAR(255),
backlog_id   VARCHAR(255),
FOREIGN KEY (backlog_id) REFERENCES backlog (id)
);

CREATE TABLE task
(
id              VARCHAR(255) PRIMARY KEY,
name            VARCHAR(255) NOT NULL,
description     TEXT,
hours_remaining INT,
volunteer       VARCHAR(255),
backlog_item_id VARCHAR(255),
FOREIGN KEY (backlog_item_id) REFERENCES backlog_item (id)
);
настройка application.properties как:

Код: Выделить всё

1. Simple In-Memory Database
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
Приведенный выше режим отображается только в браузере через http://localhost:8081/h2-console/.

и:

Код: Выделить всё

3. Persistent Database in File
spring.datasource.url=jdbc:h2:file:./data/mydb`
Воспроизведение промежуточных ошибок времени выполнения следующим образом:

Код: Выделить всё

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLNonTransientConnectionException: Unsupported database file version or invalid file header in file "E:/IdeaProject/PDP1/data/mydb.mv.db" [90048-214]

...

Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Unsupported database file version or invalid file header in file "E:/IdeaProject/PDP1/data/mydb.mv.db"

...

Caused by: org.h2.mvstore.MVStoreException: The write format 3 is larger than the supported format 2 [2.1.214/5]
UPD:

Код: Выделить всё

application.properties
со следующей опцией jdbc:h2:file:

spring.datasource.url=jdbc:h2:file:. /data/mydb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

также не работал должным образом из-за блокировки mydb.mv. db.
Ожидается:
Я ожидал получить базу данных H2 w / содержимое внутри IDEA (Intellij IDEA) следующим образом:
Изображение

Возможно, вопросы №1, №2 и №3 частично с этим связаны.

Подробнее здесь: https://stackoverflow.com/questions/785 ... varying255
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»