使用hibernate在Mysql中持久化xml的问题

时间:2009-12-24 11:45:44

标签: java mysql xml hibernate

我正在尝试使用hibernate在Mysql(5.0.67)中保留一个字符串对象。

我的实体如下:

@Entity
@Table(name = "info", schema = "DB")
public class info {
@Column(name = "InfoXml")
private String InfoXml;
}

问题在于我将xml持久化为值:

String InfoXml = "<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r\n<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">\r\n<properties>\r\n<entry key="Hello">hi</entry>\r\n</properties>";

数据库表列显示唯一的值:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

坚持下去。

xml的其余部分正在消失,没有任何痕迹。

稍微调查一下,我发现任何包含'\ r \ n'(下一行)的字符串都会被持久化,直到下一行,而其余的字符串都不会保留。

这里发生了什么?什么是解决方法?

提前致谢

与Ashish

2 个答案:

答案 0 :(得分:0)

MySQL的列类型是什么?如果它是VARCHAR,请尝试使用TEXT类型。我不太了解MySQL,但我猜它是截断文本的数据库,而不是休眠。

答案 1 :(得分:0)

问题解决了。

我使用的是Mysql GUI工具,它没有显示多行的列。

检查mysql终端中的表数据,一切看起来都不错。

感谢那些迅速作出回应的人。

与Ashish