【发布时间】:2013-06-13 09:55:41
【问题描述】:
我需要将特定语言的字符保存在 xml 数据类型的列中,因为 XML 是我在检索它时想要的格式。就在坚持之前,我在 XML 中看到了俄语字符,但是在我坚持使用 JPA 之后实际存储的内容类似于“??????”。需要注意的是,要求是将列数据类型保持为 xml。我尝试了我在网上能找到的任何东西,但没有成功。如果有人可以请帮助我。
我有一个函数,它将包含语言字符的地图作为其参数之一。该函数将地图转换为 XML 格式并以字符串形式返回。然后将其持久化到数据库中:
entityManager.persist(X)
,其中 X 是一个实体对象,其 XML 字符串映射到它的属性之一。
private String toXML(Map<String, String> map, String root) {
StringBuilder xmlSB = new StringBuilder(OPEN_NODE);
// Logic to convert map to XML
return xmlSB.toString();
}
在 entityManager.persist(X) 之后,我在数据库表中看到的条目类似于“????”在我的情况下替换所有俄语字符,其余所有内容保持不变。
【问题讨论】:
-
请问可以添加底层SQL和表吗?基本上,您发送的是非 unicode 字符串,或者它不是真正的 XML 列。例如,stackoverflow.com/a/6857945/27535 或 stackoverflow.com/a/1694267/27535 或 stackoverflow.com/a/4767737/27535
-
您用于数据库的字符集和排序规则是什么
-
@gbn 我的表有一个 X 列,数据类型为 xml,我不想将数据类型更改为 nvarchar。我会很感激你的帮助。谢谢
-
xml 接受非 ANSI。那你发错了
标签: java sql-server-2008 spring-mvc jpa