2

DB に T1 と T2 の 2 つのテーブルがあります。T1 の 1 つの列は、T2 を参照する外部キーです。処理には T1 と T2 の列の一部しか必要ないため、必要な列のみを含む DTO T1T2 を作成しました。Hibernate で DTO をこれら 2 つのテーブルにマップするために、class 要素の subselect 属性を使用しました。

<hibernate-mapping>
<class
    name="com.xconnect.cdrrecorder.processing.dto.IngressNumRuleVoipProfile"
    table="numbermodificationrules"
    subselect="select ... from T1 left join T2 on id1=id2 where ...">

    <cache usage="read-only"/>

...

</class>
</hibernate-mapping>

オブジェクトを選択する必要がある場合、Hibernate はリクエストを 2 つの選択 (一方から他方へ) に変換することに気付きました。

これを行うより良い方法はありますか?公演についてどう思いますか?

ありがとう

4

1 に答える 1

4

DTOを作成する場合は、次の例のように、クエリからDTOを入力することをお勧めします。バッキングテーブルがある場合にのみエンティティを作成します。

DTOが頻繁に使用される場合は、DBにビューを記述し、それを参照するための単純なDTOエンティティを作成できます。ビューはDBでプリコンパイルされているため、高速になります。

于 2011-10-23T10:57:32.987 に答える