我有一个oracle数据库,有一个NVARCHAR2(2000 CHAR)字段,我通过hibernate逆向工程生成的hbm文件如下
<property name="remarks" type="string">
<column length="4000" name="REMARKS" />
</property>
在数据库中更新此文件时,我发现它绑定到 varchar 而不是 nvarchar
org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [5] as [VARCHAR]
如果我输入2000个汉字,就会超过它的字段长度。
我怎样才能让它绑定到 nvarchar 呢?
更新
这是由于我正在使用的 Oracle 数据库。
参考 -
“默认情况下,oracle.jdbc.OraclePreparedStatement 将所有列视为 CHAR。”
解决方案
结果我将 defaultNChar 添加到 JNDI 连接属性
<connection-property name="defaultNChar">
true
</connection-property>