java - 在 hibernate 中存储键值对 |我们可以使用 map 吗?

标签 java hibernate

我有一个 xml 文件,其中有一些键值对。我想以键值对的形式存储它们

<parent>
  <key1> value </1key>
  <key1> value </1key>
  <key1> value </1key>
  <key1> value </1key>
   ...
  <key1> value </1key>
</parent>

现在我不知道有多少键值会预先从 xml 来。我如何将它映射到 hibernate 对象? 我可以将它存储在表中

primaryKey parentId    key   value
   1          1         k1     val
   2          1         k2     val
   3          1         k3     val
   4          2         k1     val
   5          2         k2     val
   6          3         k3     val

如何将它映射到 hibernate 对象? 我想要以下结构 父类{ int 父代号; 字符串父名称 键值键值;//如何建模?

AM 使用 netbeans IDE。

最佳答案

你确实可以使用 map :

public class Parent {
    @Id
    private Integer id;

    @OneToMany(mappedBy = "parent")
    @MapKey(name = "key")
    private Map<String, KeyValuePair> keyValuePairs;
}

public class KeyValuePair {
    @Id
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "parent_id")
    private Parent parent;

    @Column(name = "key")
    private String key;

    @Column(name = "value")
    private String value;
}

您还应该对 [parent_id - key] 设置唯一约束。

关于java - 在 hibernate 中存储键值对 |我们可以使用 map 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131440/

相关文章:

java - Admob 立即崩溃

java - Groovy 中的等效代码

java - Hibernate 实体上的 SpEL

java - 强制具有 AllocationSize 的 TableGenerator 跳到下一个间隔

java - 如何将 Json 传递的日期值分配给 Java 日期对象

java - 将图像从表单加载到 RecyclerView

java - Android ExoPlayer 已弃用,无法流式传输视频

java - org.springframework.beans.factory.UnsatisfiedDependencyException : Unsatisfied dependency expressed through method 'anyMethodName' parameter 0:

java - hibernate中的递归查询

java - org.hibernate.Criteria.setFetchSize() 不起作用