我必须将 JPA 实体对象处理为带有 JAXB 注释的对象,反之亦然。
这两种类类型如下所示:
@Entity
public Entity{
private String fieldA;
private int fieldB;
private Entity2 fieldC;
// + Getters and Setters
}
@RootElement
public JAXBEntity (extends AbstractJAXBEntity<Entity>){
private String fieldA;
private int fieldB;
private String fieldC;
// + Getters and Setters
public JAXBEntity(Entity entity) {...}
public Entity getEntity() {...}
}
我需要的是以下方法:Entity <-> JAXBEntity, List<Entity> <-> List<JAXBEntity>
我有很多这样的类对,所以我正在寻找一个非常通用的解决方案,每对的单独实现最少。如果我只需要在每对中实现constructor
and ,则最佳情况是。getEntity
JAXBEntity
我想出了以下类结构:
public abstract class AbstractJAXBEntity<Entity>
@Stateless
public EntityConversation <JAXBEntity extends AbstractJAXBEntity>
我的想法是我可以JAXBEntity
在 的实例中获得泛型 Type ,EntityConversation
然后在Entity
. 当我拥有这些类型时,我可以通过反射轻松创建对象。
但是由于类型擦除,这有点复杂。另外EntityConversation
只能使用无参数构造函数。否则我将无法使用@EJB
.
这种方法是否现实,您是否看到我可以获得类型的任何方法?或者有没有其他很好的方法可以做到这一点,我没有看到?