当我尝试使用 hibernate + jpa 在 MYSQL 数据库中保存带有 familyname = 'Lučić' 的患者时遇到问题。
当我执行常规 INSERT INTO 时,字母 č 和 ć 在数据库和我的 jsf 表单中正确显示,所以我确定我表单上的字符集在数据库中是正确的。
这是我的休眠配置:
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+jpa 将病人保存到数据库时,它将 č,ć 转换为 ?? 人物。
谁能指出我应该在哪里看/阅读/检查的东西?
谢谢 !