java在Hibernate中设置参数值时指定字符串类型
我想知道在Hibernate生成的查询中设置参数值时是否可以控制字符串的类型(unicode或ANSI)
问题是,我的应用程序中的大多数表都有varchar/char列,这些列通常出现在各种过滤器中。但是,Hibernate生成的所有查询都将参数类型设置为nvarchar/nchar
,使得构建在varchar列上的所有索引几乎不可用(索引扫描或全表扫描,而不是索引查找/查找)
作为一种解决方法,我将sendStringParametersAsUnicode
ODBC connection参数设置为false,这解决了性能问题,但我希望这应该是指定哪个字符串参数必须是Unicode,哪个只是简单的ANSI字符串的方法
多谢各位
# 1 楼答案
我不会在Hibernate或其他地方更改任何问题,因为这不是在当前层中执行此操作的重点。这是一个配置问题,因此当您必须配置连接参数(URL)时,您可以在不需要任何转换器等的情况下采用可采用的配置。因此,您只能切换URL
例如:
如果您将数据库切换到服务器MySQL或任何其他SQL server,那么只需更改配置,而不是Hibernate。我不认为这是个合适的地方
希望对你有帮助
我发现这个列表很有用:
http://emransharif.blogspot.de/2011/07/performance-issues-with-jdbc-drivers.html
干杯:)