我继承了一个使用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提供程序。
感谢。
答案 0 :(得分:1)
我能够通过在Entity类中的相应字段上使用@Lob注释来处理nvarchar(MAX),同时还在上面的链接中使用了SqlServerNativeDialect类。