如何让Hibernate映射nvarchar和ntext?

时间:2013-12-11 00:30:47

标签: sql-server-2008 hibernate sql-server-2005 jpa-2.0 nvarchar

我继承了一个使用SQLServer 2008(可能还有2005年)的项目。某些表使用Hibernate无法处理的nvarchar(255)和nvarchar(MAX)。我尝试过这些提议的解决方案:

How can Hibernate map the SQL data-type nvarchar(max)?

http://blog.cherouvim.com/sql-server-hbm2ddl-unicode-columns/

遗憾的是,它们不能与nvarchar(MAX)一起使用。我得到了这个例外

Caused by: org.hibernate.HibernateException: Wrong column type in MTP.dbo.Impact
edDetail for column Message. Found: ntext, expected: nvarchar(255)

剩下的问题是让其中一个解决方案与nvarchar(MAX)配合使用。

有没有办法让Hibernate使用这些unicode列类型?如果Hibernate不起作用,我可以切换到另一个知道如何正确处理它们的JPA提供程序。

感谢。

1 个答案:

答案 0 :(得分:1)

我能够通过在Entity类中的相应字段上使用@Lob注释来处理nvarchar(MAX),同时还在上面的链接中使用了SqlServerNativeDialect类。