休眠同一表父/子关系
我在单个表中具有父/子关系,让我们说就像
id | parent_id | some_data
我正在尝试理解/实现如何为单个表关系构建Hibernate类的最佳实践。
我有一个来自某个地方的源,它具有嵌套的JSON结构,因此在解析它之后,我希望在OracleDB中表示它。
源看起来像
{
1:
=> 2:
=> 3
=> 4:
=> 5
=> 6
}
此数据在 db 中应以以下形式结束:
1 | 0 (main rec, no parent)
2 | 1
3 | 2
4 | 2
5 | 4
6 | 1
它可能会越来越深...
我想遍历JSON结构并构建最终保存在db中的类
session.save(parent)
parent 将是我的休眠映射类的实例,让我们将其命名为Feed。
每次我下树时,它都会创建一个新的源,找到它的父级并将其添加到列表中。
Feed **parent** = new Feed();
-> Feed child2 = new Feed();
child2.setParent(parent)
parent.add(child2);
-> Feed child3 = new Feed();
child3.setParent(child2)
child2.add(child3);
Feed child4 = new Feed();
child4.setParent(child2)
child2.add(child4);
.............
session.save(**parent**)
我的问题是,我可以使用@ManyToOne和@OneToMany方法吗?
我也看了@Inheritance(策略=InheritanceType.SINGLE_TABLE),但我认为我不能把它应用到我的问题,因为我不认识父母,他们是动态的。我无法构建父类并扩展它。
所以底线我试图解决两个问题
轻松保存在父级
如何在需要时将数据从父级获取到叶子
一些Hibernate映射类示例将不胜感激。