Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

SQLAlchemyで検索条件の組立方法が知りたい件

俺だよ俺。質問してみたよ....

JavaS2JDBCというグレイトなORMがあって、何がいいってこのSimpleWhere。検索条件に該当する変数がnullだったら無視してくれるので、ベタに検索条件を組み立てる必要がない。これがすごすぎてCakePHPのORマッパーとかうんことか思ってた。

Seasar2 - S2JDBC - JdbcManager - SQL自動生成による操作

public String departmentName;
public String[] jobTypes = new String[0];
public BigDecimal salaryMax;
public BigDecimal salaryMin;

jdbcManager
    .from(Employee.class)
    .where(
        new SimpleWhere()
            .eq("department.name", departmentName)
            .in("jobType", jobTypes)
            .ge("salary", salaryMin)
            .le("salary", salaryMax))
    .getResultList();

SQLAlchemyで上記に等しいことが出来るのだろうか... これでlastnameがNoneか空文字だったら無視してくれるようになれば最高なんだけどね....

 firstname,lastname = None
    rs = User.query.\
        filter(User.firstname.like('%' + firstname + '%')).\
        filter(User.lastname.like('%' + lastname + '%')).\
        all()

追記 2014.12.26 22.45

こちらで教えて頂きました。勉強になりました。


python - SQLAlchemyの検索条件組み立て - スタック・オーバーフロー