マイバティスプラスの結合検索の方法は何ですか?
MyBatis Plusは、2種類の連動クエリ方法を提供しています。
- @Entityのプロパティに@Oneまたは@Manyアノテーションを追加することで、関連付けを指定できます。クエリ実行時に、MyBatis Plusは自動的にアノテーションの設定に基づいて結合クエリを実行します。
- Wrapperの使用方法: Wrapperオブジェクトを使用してクエリ条件を構築し、selectListメソッドを使用してクエリを実行することができます。Wrapperオブジェクトでは、nestedメソッドを使用して連携クエリの条件を指定することができます。
例えば、UserとOrderという2つのエンティティクラスがあるとしましょう。UserとOrderの間には一対多の関係があり、注釈を使用してカスケードクエリを実装することができます。
@Data
public class User {
private Long id;
private String username;
private List<Order> orderList;
}
@Data
public class Order {
private Long id;
private Long userId;
private String orderNumber;
}
selectListメソッドを使用して、クエリを実行する際に、結合検索を行うことができます。
List<User> userList = userMapper.selectList(null);
すべてのユーザーのレコードを取得し、UserオブジェクトのorderList属性を自動的に埋めるコード。
その他にも、MyBatis PlusではselectByIdやselectBatchIdsなど、他のいくつかの結合クエリ方法も提供されており、具体的な要件に応じて適切な方法を選択して結合クエリを実行できます。