2017-02-27 17 views
0

私はResultMapをMyBatisで使用しないように(できればXMLなしで)使用しないようにしています。MyBatis selectステートメントresultMapなし

私は、次の作業があります

 <select id="getAllSales" resultType="Sales"> 
      SELECT TOP 100 
       ID as "id", 
       PLANE as "plane", 
       PLANE_TYPE as "plane_type" 
     FROM SALES 
    </select> 

これは問題なくドメインオブジェクト(POJO)にマッピングされます。しかし、私は子ドメインオブジェクトを持っている場合、そこにどのようにこの作品を作るための情報があるようには思われません。たとえば:

<select id="getAllSales" resultType="Sales"> 
       SELECT TOP 100 
        ID as "id", 
        PLANE as "plane.type", 
        PLANE_TYPE as "plane.type.serial_num" 
      FROM SALES 
</select> 

これはこのresultMap =「営業」属性にマップしません(売上オブジェクトは、親オブジェクトであり、「プレーン」タイプが含まれているか、より具体的にリストタイプ

任意の提案。 XMLファイル内でこのresultMapを使用してから離れて取得する方法についてやアイデア?

さらに望ましい、完全にXMLファイルから離れて行くとのインタフェースに注釈@使用することです。

ありがとう。

答えて

0

Mybatisはオブジェクトの属性を推測することができませんが、関連が関連であることを「知らされていない」場合は複雑な型です。これは、resultMapをXMLで定義するときに実行できます。 API documentationについて@Oneに応じ

に関する注釈:

参加マッピング注釈APIを介してサポートされていません。これは 参加の欠如円形 参照

を許可しないアノテーションの制限によるものですSQLクエリは、ここでは無関係ですが、これは同じシナリオです。

ネストされた選択を使用すると考えられる場合、アノテーションはオプションになります(遅延読み込みを使用しない理由)。しかし、あなたのスキームは、それを必要とする/許可していないようです。

結局、私はXMLが唯一の方法だと思います。

関連する問題