例:
User と Address という 2 つのエンティティ クラスがあります
データベース:
リーリーmybatis マッピング構成:
リーリーユーザーとアドレスの関係は次のとおりです。1 人のユーザーは複数のアドレスを持ち、1 つのアドレスは 1 人のユーザーにのみ属することができ、1 対多です。
現在の需要は、ページ内のユーザーをクエリし、ページ内にユーザーを表示することであると仮定します。テーブルを作成し、各ユーザーを配置します。 すべてのアドレスが表示されます。
その後、問題が発生します。
上記のクエリに従って返されたページング データには問題はありませんが、ページング レコードの総数が間違っています。
たとえば、見つかったデータ (ページ表示ではなくデータベース データ) は次のとおりです:
u_id | ユーザー名 | ###援助### ###詳細###1 | |
---|---|---|---|
1 | 北京市海頂区 | 1 | |
2 | 北京市朝陽区 | 2 | |
3 | 天津市 | 私の要件はページにユーザーを表示することなので、ユーザーはページに表示される次のようなデータです。理論的には、これは 2 つのデータです。 |
ユーザー名
###住所###1 | ユーザー1 | 1. 北京市海淀区 2. 北京市朝陽区 |
---|---|---|
2 | ユーザー2 | 1. 天津市 |
合計1ページ、合計2つのデータ、各ページに10個表示されます | しかし、mybatis の find_count 設定によると、項目が 3 つあることがわかります。 | count(*) をクエリするとき、左結合に関連付けられたすべてのテーブルを削除する必要がありますか?これにより、返されるデータが不正確になりますか|
追加説明: 私が言いたかったことを皆さんが誤解されているようです。実際、私の問題は主に SQL にあり、mybatis ではありません。なぜなら、クエリしたデータがマップされた後はまったく問題がなかったからです。ページング レコードの総数に問題があるため、誤ったページングが発生します。 |
漂亮男人2017-06-10 09:51:39
例を書いてテストしてみました
`
2 つのエンティティ クラス
パブリック クラス ユーザー {
パブリッククラスアドレス{
リーリーマッピング ファイル
<resultMap type="com.atguigu.mybatis.entity.User" id="userMap" autoMapping="true">
<!-- tu.,ta.、 -->
<!-- ta.id を 'a_id' として選択、 -->