在数据库中存储一个大字符串?

时间:2018-06-18 13:28:55

标签: java sql-server hibernate

在SQL Server数据库中存储大字符串的最佳方法是什么。

我正在使用varchar(8000),但是在使用Hibernate持久化我的对象时遇到了这个异常:

>Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.

3 个答案:

答案 0 :(得分:3)

您使用的是哪个版本的SQL Server?如果版本高于2005使用VARCHAR(MAX)。如果版本在2005之前,您可以使用TEXT

答案 1 :(得分:1)

如果您想在SQL Server上存储一个非常大的字符串,可以使用:

 varchar(max) 

答案 2 :(得分:1)

我可以看到hibernate的标签,你需要@Lob的标签来存储超大型对象。

  

指定持久属性或字段应保留为   大对象到数据库支持的大对象

示例:

@Lob @Basic(fetch=LAZY)
   @Column(name="REPORT")
   protected String report;

来自Hibernate Docs.