gpt4 book ai didi

Hibernate如何实现动态数据结构

转载 作者:行者123 更新时间:2023-12-02 23:10:36 25 4
gpt4 key购买 nike

我有这么庞大的数据结构 - 我想避免为每种类型指定类......
使用hibernate,这个结构是否可以以这样的方式实现:当添加新物种或外键时 - 不需要重新编译?

Animal
|
Birds
| Parakeet
| Love Bird -> [one to many:visit record]
| Budgerigar -> [one to many:visit record]
Mammals
| Dog -> [one to many:vaccinations] [one to many:visit record] [one to many:Haircuts]
| Cat -> [one to many:vaccinations] [one to many:visit record]
| Horse -> [one to many:vaccinations] [one to many:Horse breeding]


Tree is about 100+ types of animals

例如 -

示例1:我可以添加其他类型而无需重新编译代码

     | Cow -> [one to many:vaccinations] -> [one to many:pregnancy dates]

示例2:在实体之间创建动态链接的能力

    |   Horse -> [one to many:vaccinations] [one to many:Horse breeding]
LinkToOwner-> [one to one: owner]

最佳答案

hibernate Dynamic mappings是针对此用例的推荐解决方案。通过动态 Hibernate 映射,所有内容都会映射到 Java 映射中,其中键是字符串,值是 String、Integer 等类型或其他映射。

因此,在您的示例中,您将获得一个包含两个条目的 map ,其中键为“Birds”和“Mammals”,它们本身就是 map 。

哺乳动物值将是一个包含 3 个条目“狗”、“猫”和“马”的 map 。 “Cat”值将是一个包含两个条目的 map :“疫苗接种”和“访问记录”等。

动态映射可以与更常用的静态映射一起使用。

动态映射不是 Hibernate 最常用的功能,但它们长期以来都很稳定,并且是专门针对此用例而设计的。

关于Hibernate如何实现动态数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20415638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com