1

JPA エンティティ オブジェクトを JAXB アノテーション付きオブジェクトに、またはその逆に処理する必要があります。

2 つのクラス タイプは次のようになります。

@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、次にType を取得できるという考えでしたEntity。タイプがあれば、リフレクションによってオブジェクトを簡単に作成できます。

しかし、型消去のために、これは少し複雑です。さらにEntityConversation、パラメーターなしのコンストラクターのみを使用できます。そうしないと、 で注入できません@EJB

このアプローチは現実的ですか?型を取得する方法はありますか? または、私が見たことのないこれを行う良い方法はありますか?

4

0 に答える 0