Исключение JDBC при доступе к данным Hibernate: SQLException для SQL [н / п]; Состояние SQL [HY000]; код ошибки [1366]

0

Я пытаюсь сохранить информацию пользователя (имя и фамилию) с помощью JPA, но столбцы varchar не принимают символы таких языков, как арабский, малаялам, телугу и т.д., Включая emojies.

Структура таблицы выглядит следующим образом:

    @Entity
    public class UserTrueCallerInfo implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String firstName;
    private String lastName;

}

а затем геттеры и сеттеры.

            UserTrueCallerInfo userTrueCallerInfo = new UserTrueCallerInfo();
            userTrueCallerInfo.setFirstName("ABC");
            userTrueCallerInfo.setLastName("അസാദ്");
            userTrueCallerInfoRepository.save(userTrueCallerInfo);

При этом я получаю следующую ошибку,

> JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x90\x90\x90\xF0\x90...' for column 'lastName' at row 1; nested exception is org.hibernate.exception.GenericJDBCException: Incorrect string value: '\xF0\x90\x90\x90\xF0\x90...' for column 'lastName' at row 

**NOTE** default character set is "UTF-8" and i tried using 4 byte "utf8mb4" as follows 

> ALTER TABLE UserTrueCallerInfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Тем не менее я не могу сохранить данные пользователя в таблице. Ниже вы найдете persistence.properties

    jdbc.url=jdbc:mysql://localhost:3306/epay?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&connectionCollation=utf8_unicode_ci&characterSetResults=UTF-8
    jdbc.username=abc
    jdbc.password=abc**
    jdbc.driver.classname=com.mysql.jdbc.Driver
    jdbc.show.sql=false
    jdbc.generate.ddl=true
    jdbc.database=MYSQL
    jdbc.database.platform=org.hibernate.dialect.MySQL5InnoDBDialect

Любая помощь будет оценена по достоинству.

  • 0
    Необходимо убедиться, что ваша БД является правильной кодировкой, также было бы полезно увидеть ваши свойства гибернации и посмотреть этот ( stackoverflow.com/questions/39358475/utf-8-from-hibernate ) ответ для установки свойств гибернации.
  • 0
    @zmf Вот мои свойства hibernate url [ссылка] (jdbc.url = jdbc: mysql: // localhost: 3306 / epay? autoReconnect = true & useUnicode = true & characterEncoding = UTF-8 & connectionCollation = utf8_unicode_ci & characterSetResults = UTF-8)
Теги:
hibernate
jpa
jdbc
spring-data-jpa

1 ответ

0

Какова ваша кодировка? Вы можете попробовать изменить charset базы данных. Может быть utf-8.

Специальный символ может быть 4 байта, вы можете использовать utf8mb4.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню