【问题标题】:How do I map json column in hibernate-mapping file?如何在休眠映射文件中映射 json 列?
【发布时间】:2021-09-29 16:11:20
【问题描述】:

我正在尝试关注此博客,了解如何将 json 映射到休眠:https://vladmihalcea.com/how-to-map-json-objects-using-generic-hibernate-types。 它没有说如何做休眠映射文件(.hbm.xml)。

我该怎么做?

我尝试过类似的方法,但它不起作用:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.orange.model">
    <class name="Test_json" table="product_json">
        <id name="id" column="id">
            <generator class="increment"/>
        </id>
        <property name="jdoc" column="json" type="json" />
    </class>
</hibernate-mapping>

java类是:

// package and imports omitted

@XmlRootElement
@Entity
@Table(name="product_json")
@TypeDef(name = "json", typeClass = JsonType.class)
public class Test_json {
    
    @Id
    @GeneratedValue(generator="increment")
    @GenericGenerator(name="increment", strategy = "increment")
    private int id;

    @Type(type = "json")
    @Column(name="json", columnDefinition ="json")
    private Jdoc jdoc;
    
    // getters and setters omitted
}

// package omitted

public class Jdoc {
    private int idprod;
    private String nameprod;
    private String description;

    // getters and setters omitted
}

我必须为 Jdoc 类创建一个休眠映射文件吗?如果是这样,我如何将它链接到 Test_jdoc 映射?

提前感谢您的帮助。

【问题讨论】:

    标签: java json hibernate jpa hibernate-mapping


    【解决方案1】:

    感谢 vladmihalcea,我能够理解。
    忘记休眠映射文件。

    做JPA注解映射!

    我的问题的解决方案:
    而不是使用&lt;mapping resource="Test_json.hbm.xml" /&gt; 添加您的课程。
    在创建 sessionFactory 时用代码添加你的类:

    sessionFactory = new MetadataSources( registry )
                    .addAnnotatedClass(Test_json.class)
                    .buildMetadata().buildSessionFactory();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多