hibernate mysql utf8查找有外来字符的问题

f87krz0w  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(278)

我有一个简单的spring/hibernate应用程序,它由mysql数据库支持。
数据库是字符集 utf8mb4 整理 utf8mb4_bin . 我有很多包含非拉丁字符的数据。
我有一个页面表(id、pagename、text),其中pagename是唯一索引,我使用hibernate criteria api查询此表:

Page result = session.createQuery(query.where(
                builder.equal(root.get("pagename"), name)
        ).select(root)).getSingleResult();

对于某些值,我有一个 ResultNotFound 例外。尽管有一个记录是匹配的。我可以通过查询:

select count(*) from page where pagename="Tři_oříšky_pro_Popelku"
1 row in set (0.01 sec)

如果我通过pk而不是这个uk来比较java中的字符串,则返回字符串比较 true ```
session.createSQLQuery(
"select * from page p where p.id = :pid")
.addEntity(Page.class)
.setParameter("pid", 29752).list().get(0).getPageName().equals(name);

我错过了一些很简单的东西吗?我试过在hibernate配置文件中使用字符集和编码,但是我被卡住了!
我在用 `org.hibernate:hibernate-java8:5.2.10.Final` 以及 `mysql:mysql-connector-java:6.0.6` 

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题