私は自分では解決できない問題に直面していますので、私はあなたの助けを求めています。問題は次のとおりです。 永続性レイヤーをアップグレードする必要があります。以前はJDBCを使ってデータにアクセスしていましたが、今はJPAを使用するべきです。つまり、新しいオブジェクトでデータが取得されるようになりましたが、システムは古いオブジェクトで動作します。したがって、古いエンティティと新しいエンティティの間にいくつかのコンバータを記述する必要があります。しかし、問題は時には古いものから新しいエンティティを形成するためにいくつかの追加情報が必要なことです。たとえば:オブジェクトコンバータを作成するためのベストプラクティス
class OldEntity{
private int id;
// old entity contains only foreign key
private int otherEntityId;
...
}
class NewEntity{
private int id;
// new entity contains object that associated with foreign key
private OtherEntity otherEntity;
...
}
我々は、すべてのコンバータにいくつかの一般的なインタフェースを追加したいが、我々は新しいものに古いエンティティから変換する場合、まず、私たちはそのidで「otherEntity」を取得し、コンバータにそれを与える必要があります。構造が異なる多くのエンティティがあるので、コンバータのメソッドは、新しいエンティティを形成するためにさまざまな数の異なるパラメータを受け取る必要があります。 問題は、このような問題に対する優れたアーキテクチャソリューションはありますか?
どのように追加情報を取得しますか?ユーザーにダイアログボックスをポップアップしますか? –
いいえデータベースから外部キー値で検索されます。例のクラスの場合と同様に、古いエンティティには外部キー値しかなく、新しいオブジェクトのidで取り出されたオブジェクト全体を埋めたいとします。私はコンバータのメソッドの中でそれを取得することは悪い考えだと思うので、私は適切なコンバータのメソッドにそのような検索オブジェクトを与えるためのより良い方法を探しています。 –
マッピングを設定して古いエンティティを生成し、コンバーターを必要としない方法はありませんか? –