ActiveJDBC,如何在单个 table 中查询我感兴趣的一些列

ActiveJDBC , How can i query some columns i interest with in a single table

当我查询单个 table 时,我不需要所有列,我只想要一些我感兴趣的列。

例如,当我使用where方法查询table时,它将查询table中的所有列,如

public class SubjectSpecimenType extends Model {

}
SubjectSpecimenType.where("SUBJECT_ID = ? AND SITE_ID = ?", subjectId, siteId);

我不知道是否有一个名为 select 的方法可以用来查询某些列,例如

SubjectSpecimenType.select("SUBJECT_NAME", "SITE_NAME").where("SUBJECT_ID = ? AND SITE_ID = ?", subjectId, siteId);

LazyList.java

里面有源码
/**
     * Use to see what SQL will be sent to the database.
     *
     * @param showParameters true to see parameter values, false not to.
     * @return SQL in a dialect for current connection which will be used if you start querying this
     * list.
     */
    public String toSql(boolean showParameters) {
        String sql;
        if(forPaginator){
            sql = metaModel.getDialect().formSelect(null, null, fullQuery, orderBys, limit, offset);
        }else{
            sql = fullQuery != null ? fullQuery
                    : metaModel.getDialect().formSelect(metaModel.getTableName(), null, subQuery, orderBys, limit, offset);
        }
        if (showParameters) {
            StringBuilder sb = new StringBuilder(sql).append(", with parameters: ");
            join(sb, params, ", ");
            sql = sb.toString();
        }
        return sql;
    }

当调用formSelect方法时,第二个参数columns总是null

是否有未完成的 TODO?

在模型上操作时,ActiveJDBC 总是选择所有列,因为如果您加载模型并且它加载了部分属性,那么您的模型有缺陷。这些列在某些边缘情况下指定,如在 RawPaginator 中:https://github.com/javalite/javalite/blob/e91ebdd1e4958bc0965d7ee99e6b7debc59a7b85/activejdbc/src/main/java/org/javalite/activejdbc/RawPaginator.java#L141

这里没有什么可以完成的,该行为是故意的。