0

我正在尝试更新一个包含很长字符串(文本数据类型)的列(在 MS SQL 表中),并使用 JPQL 将我的应用程序中的字符串附加到它后面。但以下查询失败:

UPDATE entity e SET e.longText = CONCAT(e.longText, :textToAppend) WHERE e.id = :id

带消息

The data types text and nvarchar are incompatible in the add operator.

问题是我们还需要支持 MS SQL 数据库以外的其他 DBS,并且 DBS 特定的查询是不可能的(至少如果有其他方式)。

通过这个查询,我试图绕过对整个长文本的查询并将其连接到应用程序中并将其更新回来,所以它并不慢(查询经常被调用)。

我可以以某种方式将一个字符串附加到一个非常长的文本列而不在应用程序中手动执行它,因此它可以在 MS SQL 中工作吗?(遗憾的是,我知道 JPQL 中没有演员表支持)

将 JPA 与 Hibernate 一起使用。

4

1 回答 1

0

原来我使用的是旧的休眠方言。SQL Server 2008 ( ) 有一种方言可以正确org.hibernate.dialect.SQLServer2008Dialect映射@Lob String属性。

于 2013-10-15T13:47:06.727 回答