mysql转oracle数据库时,若表中存在long型字段(length>=4096),读取表数据有时会报错“java.sql.SQLException: 流已被关闭” 。 debug之后发现是因为数据库表中存在longtext 类型的数据,oracle没有这种类型。oracle有个等价的类型,叫clob。可参考StackOverflow上的介绍。因此将该字段改为clob类型的就OK了。
用注解的方式:
@Entity
public class domain {
@Column(length = 4096)
private String richText;
}
改为
public class domain {
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(columnDefinition = "CLOB", nullable = true)
private String richText;
}