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

Hibernate使用泛型的多对一双向

阎晋
2023-03-14

我有一个需要在多个地方使用的实体类。所以我创建了一个如下的泛型类

class Output<T> {
    ...
    private String referencedEntityName; 
    private T referencedEntity; 
    ...

}

我还有另外两个类正在使用这个类

class Process {
     ...
     private List<Output<Process>> outputs;
     ...
}

另一个使用输出的类

class Machine {
    ...
    private List<Output<Machine>> outputs; 
    ...

}

当存储在数据库中时,它应该是这样的

+----+------------------------+----------------------+
| id | referenced_entity_name | referenced_entity_id |
+----+------------------------+----------------------+
| 1  | Process                | 123                  |
+----+------------------------+----------------------+
| 2  | Process                | 234                  |
+----+------------------------+----------------------+
| 3  | Machine                | 345                  |
+----+------------------------+----------------------+

我如何实现这一点?

P. S.这并不是像这样的继承问题。虽然可以使用判别值之类的接口解决方案来解决,但我不确定。

在这里,两个实体之间存在关系,一个实体在其他几个实体中被引用。我认为这应该通过使用泛型来明确。此外,这个解决方案可以通过保持相同的关系以其他方式设计。我也对此持开放态度。


共有1个答案

储毅
2023-03-14

阅读有关 JPA 中的继承的信息。使用继承策略SINGLE_TABLE您将获得与您发布的表格完全相同的表格。查看 https://en.wikibooks.org/wiki/Java_Persistence/Inheritance#Example_single_table_inheritance_table_in_database

 类似资料:
  • 问题内容: 我在理解Hibernate如何处理泛型时遇到一些麻烦,并且想知道实现我的目标的最佳方法。 给定一个简单的通用实体: 在进行hibernate初始化时,出现异常: 我几乎可以肯定,这是因为我没有给hibernate一些可能的限制条件。我知道你可以指定的东西,如上面的注释,但你失去使用泛型的灵活性。我可以使用注解限制可接受的泛型的范围吗?例如:如果我想要class ,该类从抽象类继承而来,

  • 1. 前言 本节课程和大家一起聊聊一对多关联映射。通过本节课程,你将了解到: 如何实现一对多关联映射; 如何实现双向一对多关联映射; 关联映射中的级联操作。 2. 一对多关联映射 关系型数据库中表与表中的数据存在一对多(或多对一)关系。 如学生表、班级表。一个班级有多个学生,多个学生可以在同一个班级。 一对多或多对一本质上是一样的,如同一块硬币的正面和反面,只是看待事物的角度不同而已。 数据库中有

  • 1. 前言 通过本节课程的学习,你将发现关联对象之间的微妙关系。相信这种关系对你更深入地认识 HIbernate 有很大的帮助。 通过本节课程,你将了解到: 多对多双向关联映射中哪一方是关系维系者; 级联操作与关系维系者。 2. 关系维系者 新学期开始了,同学们选择了各自喜欢的课程,现在为学生添加选修课程的任务就要落在 Hibernate 的身上。一起来看看 Hibernate 是如何完成这个任务

  • 问题内容: hibernate映射中的默认访存类型是什么? 探索之后我知道的是: 渴望 一对一。 对于一对多来说,这是 懒惰的 。 但是在Eclipse中对其进行测试后,它对所有人都非常渴望。 是否取决于我使用的是JPA还是Hibernate? 问题答案: 这取决于您使用的是JPA还是Hibernate。 根据JPA 2.0规范,默认值为: hibernate的时候,一切都是懒惰的 更新: 最新版

  • null 但是在Eclipse中测试它之后,它渴望得到所有的东西。 是否取决于我使用的是JPA还是Hibernate?

  • 场景:一个应用程序有多个实体。每个实体表示一个数据库表。所有数据库表都有一个主键列,但列名不同。 实体示例: 服务类示例: 问题:如果我像下面这样声明dao接口: 将参数作为发送到JPararePository中,然后我的方法在服务类中运行良好。 但是Spring不允许在没有列的情况下创建类。所以我必须声明一个ID列。同样,在我的数据库中,每个表都有一个主列,但所有表的该列的名称是不同的。例如,表