質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Q&A

0回答

4588閲覧

Mybatis + mybatis-generator、生成されるExampleクラスでのor検索のやり方

yoshihiro_yy

総合スコア27

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

0グッド

0クリップ

投稿2020/05/01 06:30

Mybatis + Spring でのWebアプリを作成しています。

mybatis-generatorを利用し、mapperなどを自動生成しています。
その自動生成されるExampleクラスでDBの検索をしたいのですが、
and条件であれば問題なく実現出来ました。

java

1 AaaExample example = new AaaExample(); 2 example.createCriteria() 3 .andColumnAEqualTo(a) 4 .andColumnBEqualTo(b) 5 .andColumnCEqualTo(c); 6 xxxMapper.selectByExample(example);

これで行えばsqlのwhere部分はand条件で絞り込めました。

しかしorの場合がどうやるか分からず困っております。
単純なorではなく以下のようなSQLを組み立てたいのです。

sql

1select * from xxx 2where 3 (A = 'a' or B = 'b') 4and C = 'c'

or()というメソッドがExampleクラスで生成されていたので、以下のように利用してみましたが

java

1 example.or().andAEqualTo('a').andBEqualTo('b'); 2 example.or().andCEqualTo('c');

sql

1where 2 (A = 'a' AND B = 'b') 3or C = 'c'

といった具合で()内はandで繋げられてしまいました。

()内をorの条件にしたい場合は自分でxmlにSQLを用意する方法しかないのでしょうか?

また、Exampleクラスで実現可能な場合、xmlにSQLを記載する方法とどちらが良いのでしょうか。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問