3

現在、Orika を使用して Hibernate マネージド ドメイン オブジェクトとモデル (DTO) をマッピングしています。モデルから行くときにコレクションをマージしたいのでこれを行います->ドメイン。変更が行われない場合、エンティティのHibernateバージョン番号は繰り返されません。最初に、次のように定義されたマッパーをセットアップしました。

A extends CustomMapper<List<Domain>, List<Model>> { ... }

これは、実際には永続レイヤーを使用しない単体テストでは正常に機能しますが、Hibernate との統合テストを行うと、これはまったく呼び出されません。実際、私のオブジェクトのコレクションは、どちらの方向にも読み込まれません。掘り下げると、これは Hibernate が PersistentList を使用しているためであることが明らかになりました (List を実装しますが、型情報はありません)。だから今私は2つのマッパーを持っています:

A extends CustomMapper<List<Domain>, List<Model>> { ... }
B extends CustomMapper<PersistentList, List<Model>> { ... }

A を削除すると、Orika はマッパーがまったく存在しないかのように振る舞います。これは、私が提供するすべてのクラス マップを分析しているときに、PersistentList に一致するものが見つからないため、含まれていないためだと思います。

B を削除すると、Orika は PersistentList をマップしないため、Hibernate から返されたドメイン オブジェクトをモデルに適切にマップしません。

これをきれいにする方法はありますか?あいまいでない方法ですべてのケースをカバーする単一のマッピングを定義するにはどうすればよいですか?

4

0 に答える 0