Невозможно преобразовать строку '\xAC\xED\x00\x05~r...' из двоичного кода в utf8mb3.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно преобразовать строку '\xAC\xED\x00\x05~r...' из двоичного кода в utf8mb3.

Сообщение Anonymous »

Я получаю исключение всякий раз, когда запускаю этот фрагмент кода:

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

StringBuilder sqlQuery = new StringBuilder("SELECT this_.id as id, this_.number_of_hours as number_of_hours, this_.date_start as date_start, this_.date_end as date_end, this_.date_created as date_created, this_.obsolete as obsolete FROM (");
sqlQuery.append(" select tt.* from employee_tracking tt ")
.append(" inner join contract c on tt.contract_id=c.id ")
.append(" where tt.obsolete = :OBSOLETE ");

// UNION
sqlQuery.append(" UNION ");

sqlQuery.append(" select tt_.* from employee_tracking tt_ ")
.append(" inner join contract_extension ce_ on tt_.contract_extension_id=ce_.id ")
.append(" where tt_.obsolete = :OBSOLETE ");

sqlQuery.append(") AS this_ ORDER BY id ASC ");

SQLQuery query = getSessionFactory().getCurrentSession().createSQLQuery(sqlQuery.toString());
query.setParameter("OBSOLETE", 0);

query.addEntity(EmployeeTracking.class);

List lst = query.list();
Трассировка стека исключений:

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

WARN  SqlExceptionHelper - SQL Error: 3854, SQLState: HY000
ERROR SqlExceptionHelper - Cannot convert string '\xAC\xED\x00\x05~r...' from binary to utf8mb3
Это конфигурация набора символов моего сервера:

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

mysql> use lambda;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb3            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8mb3            |
| collation_connection     | utf8mb4_0900_ai_ci |
| collation_database       | utf8_danish_ci     |
| collation_server         | utf8mb4_0900_ai_ci |
+--------------------------+--------------------+
10 rows in set (0,00 sec)

mysql> SELECT CCSA.character_set_name FROM information_schema.`TABLES` T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
-> WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "lambda" AND T.table_name = "employee_tracking";
+--------------------+
| CHARACTER_SET_NAME |
+--------------------+
| utf8mb4            |
+--------------------+
1 row in set (0,01 sec)
Мой jdbcUrl:

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

jdbc:mysql://localhost:3306/lambda?jdbcCompliantTruncation=false&serverTimezone=Europe/Berlin&allowPublicKeyRetrieval=true&useSSL=false&zeroDateTimeBehavior=round
Я использую следующую версию MySQL Server:

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

~ % /usr/local/mysql/bin/mysql --version
/usr/local/mysql/bin/mysql  Ver 8.0.27 for macos11 on x86_64 (MySQL Community Server - GPL)
Любая помощь будет более чем признательна.

Подробнее здесь: https://stackoverflow.com/questions/725 ... to-utf8mb3
Ответить

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

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

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

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

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