gpt4 book ai didi

java - 我可以使用 JPA 将对象类型映射到表吗?

转载 作者:行者123 更新时间:2023-11-30 02:31:20 25 4
gpt4 key购买 nike

我使用 xjc 创建一个代表目录的模型类。它被注释为与 jax-b 和 jpa 一起使用。因为它对目录进行建模,所以目录可以包含文档(文件)和其他目录,因此类属性之一是:

@XmlElements({
@XmlElement(name = "dir", type = Dir.class),
@XmlElement(name = "document", type = Document.class)
})
protected List<Object> dirOrDocument = new ArrayList<>();

您可以看到我有一个对象列表,它可以是 Dir 或 Document 类的实例。这对于使用 jax-b 编码到 xml 非常有用,但是如果我想使用 JPA 将其持久保存到数据库中,我将如何告诉 JPA 测试对象是否为 instanceof Dir,写入 Dir 表。如果Object是instanceof Document,写入文档表?

我已经考虑过使用 JPA AttributeConverter,但看起来前景并不乐观,因为它似乎可以从一种类型转换为另一种类型,但我可能需要转换为多种类型。

也许还有另一种方式来表示我的模型,可以更好地用于 JAXB 和 JPA?

我正在使用 eclipselink 来实现 JAXB 和 JPA。

最佳答案

要么将其设为两个独立的关联(subDirectoriesdocuments),要么创建一个包含公共(public)属性的抽象实体(例如 File)字段(nameparentDirectory 等),以及两个子类 DirectoryDocument。然后阅读 Hibernate 手册中有关继承的章节,了解映射继承的各种方式。

关于java - 我可以使用 JPA 将对象类型映射到表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210781/

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