我有一个有点奇怪映射的项目:
<class name="com.xxx.yyy.User" table="abc_user">
<id name="uuid" type="string">
<column name="uuid" not-null="true" sql-type="char(32)"/>
<generator class="assigned"/>
</id>
映射正在通过Oracle和Microsoft SQL的验证,但Postgres失败,但有例外:
ucid的abc_user中的列类型错误。发现:bpchar,预计: 炭(32)
我看到了原因(Postgres内部将char类型转换为bpchar)。但是不知道如何修复它,因为hibernate映射用于Oracle,Postgres&amp; MS SQL数据库。所以我无法改变映射。
我认为我必须在方言级别修改它(就像我为Oracle方言所做的那样)
registerColumnType( Types.LONGVARCHAR, "clob" );
但是这种方法不适用于Types.CHAR
(它是char(1)的别名)。
欢迎任何想法:)