java - 使用泛型休眠多对一双向
问题描述
我有一个需要在多个地方使用的实体类。所以我创建了一个带有泛型的类,如下所示
class Output<T> {
...
private String referencedEntityName;
private T referencedEntity;
...
}
我有另外两个类正在使用这个类
class Process {
...
private List<Output<Process>> outputs;
...
}
另一个使用的类Output<T>
是
class Machine {
...
private List<Output<Machine>> outputs;
...
}
当存储在数据库中时,它应该如下所示
+----+------------------------+----------------------+
| id | referenced_entity_name | referenced_entity_id |
+----+------------------------+----------------------+
| 1 | Process | 123 |
+----+------------------------+----------------------+
| 2 | Process | 234 |
+----+------------------------+----------------------+
| 3 | Machine | 345 |
+----+------------------------+----------------------+
我如何实现这一目标?
PS 这不完全是这样的继承问题。虽然它可以使用接口解决方案来解决,DiscriminatorValue
但我不确定。
在这里,两个实体之间存在关系,一个实体在其他几个实体中被引用。我认为这应该通过使用泛型来明确。此外,可以通过保持相同的关系以其他方式设计此解决方案。我也对此持开放态度。
解决方案
阅读 JPA 中的继承。使用继承策略 SINGLE_TABLE 您将获得与您发布的完全相同的表格。请参阅https://en.wikibooks.org/wiki/Java_Persistence/Inheritance#Example_single_table_inheritance_table_in_database
推荐阅读
- javascript - 将 var 声明(例如 var x;)覆盖以前的值
- java - 如何从 Java Play 框架中的动作返回结果?
- google-drive-api - 如何从谷歌绘图中提取文本?
- vue.js - 我不能在 Vue.js 中使用计算的 GroupBy 数组
- mysql - 我无法查看我刚刚创建的表格?我不知道为什么
- r - 删除列中的部分字符串
- python - PyCharm 项目相互使用 pip 和 python 文件
- ruby-on-rails - 将无字符串日期保存到数据库
- c++builder - IdFTPServer 异常“对等方重置连接”
- java - 使用 UTF-8 编码导出 HSQLDB 数据库