1

我必须将 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>

我有很多这样的类对,所以我正在寻找一个非常通用的解决方案,每对的单独实现最少。如果我只需要在每对中实现constructorand ,则最佳情况是。getEntityJAXBEntity

我想出了以下类结构:

public abstract class AbstractJAXBEntity<Entity>

@Stateless
public EntityConversation <JAXBEntity extends AbstractJAXBEntity>

我的想法是我可以JAXBEntity在 的实例中获得泛型 Type ,EntityConversation然后在Entity. 当我拥有这些类型时,我可以通过反射轻松创建对象。

但是由于类型擦除,这有点复杂。另外EntityConversation只能使用无参数构造函数。否则我将无法使用@EJB.

这种方法是否现实,您是否看到我可以获得类型的任何方法?或者有没有其他很好的方法可以做到这一点,我没有看到?

4

0 回答 0