java - 如何使用 Spring Boot Hibernate 将 XML 字符串保存在 Postgresql 表的 XML 类型列中

标签 java postgresql hibernate spring-boot

我想要数据库中 XML 文件的内容。因此,我将文件内容读入字符串并计划将其转储到表的 XML 数据类型列中。我有以下类(class):

@Entity
@Table(name = "testXml")
public class testXmlimplements java.io.Serializable, Comparable<testXml> {

@Column(name="xmlContent",nullable=false, columnDefinition = "xml")
    private String xmlContent;


public void setXmlContent( String  xmlContent)
{
    this.xmlContent = xmlContent;
}

public String  getXmlContent()
{
    return xmlContent;
}

但是当我尝试插入它时,它给出以下错误消息:

ERROR: column "xml_content" is of type xml but expression is of type character varying Hint: You will need to rewrite or cast the expression.

我是 postgre 和 spring hibernate 的新手。

最佳答案

关于 Hibernate 使用 pgsql 数据库时的 XML 类型,您可以检查 link它被提到为。

Java 类可用于启用 Hibernate 将 PostgreSQL“xml”类型字段作为 String 对象进行存储和检索。它简单地适用于将 XML 解析为 DOM 并从 DOM 或任何您喜欢的 XML 表示形式进行存储。

要告诉 Hibernate 对给定的映射字段使用此 UserType,请在属性上指定 Type 注释,例如:

@org.hibernate.annotations.Type(type="foo.bar.SQLXMLType")
private String markup;

关于java - 如何使用 Spring Boot Hibernate 将 XML 字符串保存在 Postgresql 表的 XML 类型列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58562999/

相关文章:

hibernate - 无法执行 DELETE 时返回的正确 http 状态代码是什么?

java - 具有唯一项和线程池的线程安全 FIFO 队列

java - 如何在netbeans中更改java数据库应用程序的标题

python - 生成postgresql用户密码

mysql - lastInsertId(tableName_id_seq) 返回 :Undefined table: 7 ERROR: relation "tableName_id_seq" does not exist

java - @ElementCollection with Map<Entity, Embeddable> 其中 Entity 是 Embeddable 的字段

java - 使用 XMLGregorianCalendar 获取错误的日期

java - Xpath 无法运行(在 Eclipse 中),但可以在 Debug模式以及 Selenium IDE 下运行

mysql - PostgreSQL:从 MySQL 转储导入数据库 - 语法错误

java - 可以为减速度添加注释吗