This is a cache of http://dbflute.seasar.org/ja/manual/function/ormapper/conditionbean/query/equal.html. It is a snapshot of the page at 2024-11-13T00:25:51.550+0000.
Equal | DBFlute

Equal

概要

基本概念

等値条件(=)を設定します。Equal は、絞り込み条件を表す ConditionKey です。

会話上では、いこーる と表現します。文脈上、曖昧で伝わりにくい場合は ConditionBeanのいこーる(条件) などと言うとわかりやすいでしょう。

実装方法

実装の流れ

query() の後、set[column-name]_Equal() を呼び出し、条件値を指定します。

e.g. Equal条件の実装手順 (Eclipseでコード補完) {MEMBER_ID} @Java
MemberCB cb = new MemberCB();
cb.q // .q と打って enter
--
cb.query()
--
// 1. .set まで打つとカラム選択
// 2. MI (MemberId) でカラム確定
// 3. E (Equal) で enter
cb.query().setMIE
--
cb.query().setMemberId_Equal(memberId);

メソッド仕様

基本仕様

nullや空文字の指定
基本仕様の通り、例外(@since 1.1.x) or 無効な条件として素通り (@until 1.0.x) となります。
同カラムに対する複数条件の指定
基本仕様の通り、例外(@since 1.1.x) or 上書き(@until 1.0.x) となります。
同カラムに対する同じ条件値での複数指定
基本仕様の通り、例外(@since 1.1.x) or 素通りデバッグログ(@until 1.0.x) となります。
大文字小文字の区別
DBMS、もしくは、DBMSの設定に依存します。
char型でサイズ不足の値
char型のカラムに対する条件で、サイズ不足の値に対する、指定された条件値の(両端の)空白の有無による検索結果への影響は、DBMSに依存します。

空文字で等値条件

空文字で等値条件を利用する場合は、ちょっとした手順を踏む必要があります。

サポートされる型

  • String
  • Number 全般 (IntegerやLongなど)
  • Date 全般 (DateやTimestampなど)
  • Boolean
  • UUID

区分値メソッドの利用

区分値カラムの場合は、区分値メソッドが存在します。

主キーの等値条件

主キー(PK)の等値条件は利用頻度が高いため、抽象化された専用のインターフェースがあります。 通常は、あまり意識して利用する必要はありませんが、例えば、複合PKで幾つも主キー要素があるような場合 に、設定漏れを防ぐことができます。(どのカラムが主キー要素だったのかをメソッドの補完で確認)

e.g. 主キーの等値条件の設定 @Java
FooCB cb = new FooCB();
cb.acceptPrimaryKey(pk1, pk2, pk3, ...);

比較式の順序にこだわり

こまかいこだわりですが、比較式の順序がSQLと一致するようにしています。

SQL
MEMBER_ID = 3
CB
setMemberId_Equal(3)

"カラム名 + 比較条件 + 条件値" の順序が崩れないように努めました。ConditionBean には、様々な機能があるので、必ずしも一致しないところもありますが、 メソッドインターフェースを決める上での全体の基本ポリシーとしています。