The I18N question in HQL statement

在 Hibernate 3.0 中使用含有中文字符的 HQL 语句会导致转换错误,文章提供了一种解决方案,即使用占位符代替中文字符,并通过 find 方法传参获取正确数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In Hibernate 3.0, we can't use chinese character in HQL statement, if you do that, when The Hibernate  convert HQL statement to Sql statement , The chinese character will be converted to  ???, So you will get uncorrect data from database.
But we can do this, we use ? code to instead of chinese character, then use find(statement,arguments[]) to get data from database.for example:
String sql = "select user,org  from HrUsers user,OrgPerson person,OrgOupersonrelation relation,OrgOu org where user.id = person.id and person.id = relation.Pguid and relation.OuGuid = org.id and user.usrName like ?"
this.getCommonDAO().find(sql,"%"+user.getUsrName()+"%");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值