我用xjc创建了一个表示目录的模型类。它被注释为与jax-b和jpa一起使用。由于车型的目录,目录可以同时包含文档(文件)和其他目录,以便类的属性之一是:我可以使用JPA将对象类型映射到表吗?
@XmlElements({
@XmlElement(name = "dir", type = Dir.class),
@XmlElement(name = "document", type = Document.class)
})
protected List<Object> dirOrDocument = new ArrayList<>();
你可以看到,我有对象的列表,其可以是实例一个Dir或文档类。这对于使用jax-b编组xml非常有用,但是如果我想使用JPA将其持久化到数据库,我将如何告诉JPA测试Object是否为instanceof Dir,写入Dir表。如果Object是instanceof Document,写入文档表?
我已经看过使用JPA AttributeConverter,但看起来没有前途,因为它似乎从一种类型转换为另一种,但我需要潜在转换为多种类型。
也许有另一种方法来表示我的模型,可以更好地用于JAXB和JPA?
我使用eclipselink进行JAXB和JPA实现。
我想我可能会尝试你提到的继承方法。这似乎是一个自然的解决方案,可能更适合jpa。 – cditcher