当前位置: 首页 > 知识库问答 >
问题:

同一表中列值集合的Hibernate映射

章晋鹏
2023-03-14

给定下表:

CREATE TABLE MY_SCHEMA.TABLE_A (
    id integer NOT NULL,
    value character varying(50) NOT NULL,
    linked_id integer
)

我想知道hibernate注释来完成我的实体类:

public class TableA {
    @Id @Column(name="id", unique=true)
    private int id;
    @Column(name="value", nullable=false)
    private String value;
    // missing annotations
    private String linkedValue;
}

因此,我将linkedValue(来自联接到linked_id = id上TABLE_A并从列中进行选择)作为我的实体类TableA中的字符串。

类似地,如果不是一对一:

CREATE TABLE MY_SCHEMA.TABLE_A (
    id integer NOT NULL,
    value character varying(50) NOT NULL
)

CREATE TABLE MY_SCHEMA.TABLE_B (
    table_a_id integer NOT NULL,
    linked_table_a_id integer NOT NULL
)

完成我的实体类的hibernate注释是什么:

public class TableA {
    @Id @Column(name="id", unique=true)
    private int id;
    @Column(name="value", nullable=false)
    private String value;
    // missing annotations
    private Set<String> linkedValues;
}

这样我就可以在我的实体类TableA中获得TABLE_Aid=table_a_idTABLE_B,并再次在linked_table_a_id=id上加入TABLE_A以从列value中进行选择)。

首选答案,而无需引入和额外的实体类 TableB。谢谢。

共有1个答案

董凡
2023-03-14

您可以使用 JPA 2.0 @ElementCollection

public class TableA {

   @Id @Column(name="id", unique=true)
   private int id;

   @Column(name="value", nullable=false)
   private String value;

    @ElementCollection
    @CollectionTable(name = "TABLE_A",joinColumns = @JoinColumn(name = "linked_id"))
    @Column(name = "value")
    private Set<String> linkedValues = new HashSet<String>();
}
 类似资料:
  • 我有一个hibernate代码,它与默认的联接列值配合得很好,但是当我将联接列值更改为应用程序约定所需的值时,它开始崩溃。 之前:

  • 问题内容: 我有一个 清单清单 : 我想转换为一个 集合, 即删除重复列表并从中创建一个仅包含 唯一 列表的新列表。 在上述情况下,所需答案将是 但是当我这样做时,它给了我错误 TypeError:无法散列的类型:“列表” 你能解决我的问题吗?提前致谢! 问题答案: 由于列表是可变的,因此不能进行哈希处理。最好的选择是将它们转换为元组并形成一个集合,像这样 我们一次遍历一个列表,将其转换为一个元组

  • 你可以定义一个新的名或从下拉式菜单中选择导入到现有的表或集合。 【注意】如果你在“目标表”或“目标集合”输入一个新的名,在“是新的”内的框将会自动显示为“是”。 导入多个表或集合时,所有表或集合会显示在列表中。

  • 我有一个熊猫DF如下,我正在努力打印一个好看的格式。。。有人能告诉我如何从同一列值中组合这两个值吗? 我希望打印的

  • 我有两个表,第一个表包含公司id、公司名称和国家名称,第二个表包含公司相关的详细信息和一对一的映射。 我想使用Hibernate进行以下映射:- 公司表的Company_id应该映射company_detail表的company_id,所以我在POJO中设置了以下映射 另外,在setter中添加以下代码:- 这段代码运行良好,在保存公司时只有一个问题,null存储在company_detal的co

  • 有人能帮我找到一份没有重复的正确清单吗。 我有一个哈希映射列表,比如“HashMap map”,它的大小是4。键值对类似于以下内容 我想创建另一个Hashmap列表,其中包含“uri\u path”的单个条目以及相应计算的平均值和计数。这就是我正在尝试的。理想情况下,新列表的大小应小于原始列表的大小。有人能帮我理解是不是出了问题