java - Hibernate mysql 测试

标签 java mysql hibernate jpa jpa-2.0

当我尝试使用 hibernate + jpa 在 MYSQL 数据库中保存姓氏 = 'Lučić' 的患者时,我遇到了问题。

当我执行常规 INSERT INTO 操作时,字母 č 和 ć 在数据库和我的 jsf 表单上正确显示,因此我确信我的表单和数据库中的字符集是正确的。

这是我的 hibernate 配置:

app_persistance.dialect=org.hibernate.dialect.MySQLDialect
app_persistance.show_sql=true
app_persistance.generateDdl=true
app_persistance.minPoolSize=1
app_persistance.maxPoolSize=10
app_persistance.connection.url=jdbc:mysql://localhost:3306/dentapp
app_persistance.connection.username=root
app_persistance.connection.password=root
app_persistance.connection.driver_class=com.mysql.jdbc.Driver
app_persistance.hibernate.connection.CharSet=utf8_croatian_ci
app_persistance.hibernate.connection.characterEncoding=UTF-8
app_persistance.hibernate.connection.useUnicode=true
app_persistance.hbm2ddl=update

我尝试调试并检查 jsf 表单中的 Patient 对象中的值 familyname 在 serviceImpl 中是否具有正确的值( č, ć ):

@Override
@Transactional
public Patient save(Patient patient) {
    return patientDAO.save(patient);
}

但在病人对象中一切似乎都很好,所以它一定是 hibernate 配置的问题。当 hibernate+jpa 将病人保存到数据库时,它将 č,ć 转换为 ??字符。

任何人都可以指出我应该在哪里查看/阅读/检查的内容吗?

谢谢!

最佳答案

您的连接似乎未使用 UTF8

改变

app_persistance.connection.url=jdbc:mysql://localhost:3306/dentapp

app_persistance.connection.url=jdbc:mysql://localhost:3306/dentapp?useUnicode=true&characterEncoding=utf-8

关于java - Hibernate mysql 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811687/

相关文章:

java - 组织.hibernate.MappingException : Repeated column in mapping for entity

java - hibernate + Spring + Tomcat

mysql - 如何在mysql中使时间戳分钟00

javax.persistence.PersistenceException : No Persistence provider for EntityManager named customerManager

java - MyBatis log4j 配置仅记录映射器 XML 中的 SQL 名称,而不记录 SQL

java - 处理 Windows 文件系统上的 unix 符号链接(symbolic link)文件

java - 如果我尝试在 textview 中捏合,缩放不起作用

java - 静态方法中如何访问静态方法和非静态方法

mysql - PDO异常 : General error: 2006 MySQL server has gone away

sql - 迭代器的MySQL实现