
io.lhysin.mybatis.ddd.provider.QueryByCriteriaProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mybatis-ddd Show documentation
Show all versions of mybatis-ddd Show documentation
Mybatis Domain Driven Design
package io.lhysin.mybatis.ddd.provider;
import java.io.Serializable;
import org.apache.ibatis.builder.annotation.ProviderContext;
import org.apache.ibatis.builder.annotation.ProviderMethodResolver;
import org.apache.ibatis.jdbc.SQL;
import io.lhysin.mybatis.ddd.spec.Criteria;
import io.lhysin.mybatis.ddd.support.SqlProviderSupport;
/**
* QueryByCriteriaProvider
*
* @param Table Entity
* @param Table PK
*/
public class QueryByCriteriaProvider extends SqlProviderSupport
implements ProviderMethodResolver {
/**
* @param criteria {@link Criteria}
* @param ctx {@link ProviderContext}
* @return dynamic SQL
*/
public String findOne(Criteria criteria, ProviderContext ctx) {
return new SQL()
.SELECT(selectColumns(ctx))
.FROM(tableName(ctx))
.WHERE(wheresByCriteria(criteria, ctx))
.ORDER_BY(this.orders(criteria.getSort(), ctx))
.FETCH_FIRST_ROWS_ONLY(1)
.toString();
}
/**
* @param criteria {@link Criteria}
* @param ctx {@link ProviderContext}
* @return dynamic SQL
*/
public String findBy(Criteria criteria, ProviderContext ctx) {
return new SQL()
.SELECT(selectColumns(ctx))
.FROM(tableName(ctx))
.WHERE(wheresByCriteria(criteria, ctx))
.ORDER_BY(this.orders(criteria.getSort(), ctx))
.toString();
}
/**
* @param criteria {@link Criteria}
* @param ctx {@link ProviderContext}
* @return dynamic SQL
*/
public String countBy(Criteria criteria, ProviderContext ctx) {
return new SQL()
.SELECT("count(*)")
.FROM(tableName(ctx))
.WHERE(wheresByCriteria(criteria, ctx))
.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy