0

私はDAOを持っていますUser

class User{
  int id,
  int name,
  List<Vehicle> vehicles;
}

私のUserMapper.javaインターフェイスには、 User DAO を提供するメソッドがあります。

@Select("select u.id, u.name, v.id, v.name from User u, Vehicle v where u.id=#{id} and v.user_id=u.id")
public User getUser(int id);

上記のクエリが User オブジェクトの vehicle コレクションを適切に満たすようにするにはどうすればよいですか? 注釈を使用してください(XML は最後の手段としてのみ使用してください)。

4

1 に答える 1

0

Mybatis 3ユーザーガイドから、

注:結合マッピングは、AnnotationsAPIではサポートされていないことに気付くでしょう。これは、循環参照を許可しないJavaアノテーションの制限によるものです。

あなたができる最善のことはこのようなものです、

@Results({
    @Result(property = "id", column = "id", id = true),
    @Result(property = "name", column = "name"),
    @Result(many=@Many(select="your select"), javaType=Vehicle.class)
})

@Select( "select u.id、u.name、v.id、v.name from User u、Vehicle v where u.id =#{id} and v.user_id = u.id")public User getUser(int id);

私のアドバイスは、xmlを使用してください。

于 2013-01-10T18:48:14.797 に答える