我使用 spring-data-jpa
和 mysql
数据库。我的表字符集是 utf-8。我还添加了 ?useUnicode=yes&characterEncoding=utf8
到 application.properties 文件中的 mysql url。当我将“ąčęėį”之类的字符传递给控制器以将其保存在 mysql 中时出现问题。在 mysql 中我得到了???分数。但是当我使用 mysql 控制台示例 update projects_data set data="ąęąčę" where id = 1;
时,每个都运行良好。
应用程序.properties:
# "root" as username and password.
spring.datasource.url = jdbc:mysql://localhost:3306/gehive?useUnicode=yes&characterEncoding=utf8
spring.datasource.username = gehive
spring.datasource.password = pass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager)
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
表:
+---------------+--------------------+
| TABLE_NAME | character_set_name |
+---------------+--------------------+
| customer | utf8 |
| projects | utf8 |
| projects_data | utf8 |
+---------------+--------------------+
原文由 Edgaras Karka 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试
看来问题是由于缺少“-”。
参考:- https://forum.hibernate.org/viewtopic.php?f=1&t=1037497&view=next