DBFlute勉強会メモ

DBFlute勉強会

package com.example.dbflute.basic.dbflute.howto.jp;

import org.seasar.dbflute.cbean.ListResultBean;
import org.seasar.dbflute.cbean.coption.LikeSearchOption;
import org.seasar.dbflute.cbean.sqlclause.SqlClauseMySql;
import org.seasar.dbflute.cbean.sqlclause.query.QueryClauseArranger;

import com.example.dbflute.basic.dbflute.cbean.MemberCB;
import com.example.dbflute.basic.dbflute.exbhv.MemberBhv;
import com.example.dbflute.basic.dbflute.exentity.Member;
import com.example.dbflute.basic.unit.AppContainerTestCase;

public class DemoClass extends AppContainerTestCase {

    protected MemberBhv memberBhv;
    
    public void test_nullFirstLast() {
        MemberCB cb = new MemberCB();
        cb.query().addOrderBy_Birthdate_Desc().withNullsFirst();
//        cb.query().addOrderBy_Birthdate_Desc().withNullsLast();
        
        ListResultBean<Member> members = memberBhv.selectList(cb);
        for (Member member : members) {
            log(member);
        }
        
    }

    public void test_aimai() throws Exception {

        MemberCB cb = new MemberCB();

        LikeSearchOption option = new LikeSearchOption();
        option.likeContain().splitByBlank();
        cb.query().setMemberName_LikeSearch("foo bar hoge", option);

        ListResultBean<Member> members = memberBhv.selectList(cb);

        for (Member member : members) {
            log(member);
        }
    }

    public void test_mysqlCollate() throws Exception {
        // 
        MemberCB cb = new MemberCB();
        LikeSearchOption option = new LikeSearchOption() {
            private static final long serialVersionUID = 1L;

            @Override
            public QueryClauseArranger getWhereClauseArranger() {
                return new SqlClauseMySql.CollateUTF8UnicodeArranger();
            }
        };
        cb.query().setMemberName_LikeSearch("vic", option);

        // DBFlute がカラムと Where の条件を見て INNER JOIN で影響が無い部分だけ INNER JOIN にするよ!
        // cb.allowInnerJoinAutoDetect();
        // 意図的に INNER JOIN にする!
        // cb.query().queryMemberSecurityAsOne().innerJoin();
        ListResultBean<Member> members = memberBhv.selectList(cb);

        for (Member member : members) {
            log(member);
        }
    }
}