0

我有一个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>
4

2 回答 2

0

尝试像这样修改hbm文件

<property name="remarks" type="string">
    <column name="REMARKS" sql-type="nvarchar(2000)"/>
</property>
于 2013-11-08T07:08:04.853 回答
0

这是由于我正在使用的 Oracle 数据库。
参考 - “默认情况下,oracle.jdbc.OraclePreparedStatement 将所有列视为 CHAR。”

结果我将 defaultNChar 添加到 JNDI 连接属性

 <connection-property name="defaultNChar">
    true
 </connection-property>
于 2013-11-26T09:06:28.907 回答