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>
私はこれらのクラスペアをたくさん持っているので、ペアごとの個々の実装を最小限に抑えた非常に一般的なソリューションを探しています。最適なのは、ペアごとにconstructor
andのみを実装する必要がある場合です。getEntity
JAXBEntity
私は次のクラス構造を考えました:
public abstract class AbstractJAXBEntity<Entity>
@Stateless
public EntityConversation <JAXBEntity extends AbstractJAXBEntity>
JAXBEntity
のインスタンスでジェネリック Type を取得しEntityConversation
、次にType を取得できるという考えでしたEntity
。タイプがあれば、リフレクションによってオブジェクトを簡単に作成できます。
しかし、型消去のために、これは少し複雑です。さらにEntityConversation
、パラメーターなしのコンストラクターのみを使用できます。そうしないと、 で注入できません@EJB
。
このアプローチは現実的ですか?型を取得する方法はありますか? または、私が見たことのないこれを行う良い方法はありますか?