ActiveJDBC, как я могу запросить некоторые интересующие меня столбцы в одной таблице

когда я запрашиваю одну таблицу, мне не нужны все столбцы, мне просто нужен какой-то столбец, который меня интересует.

Например, когда я использую метод where для запроса таблицы, он будет запрашивать все столбцы в таблице, например

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?


person 靳刘杰    schedule 14.01.2020    source источник


Ответы (1)


При работе с моделями ActiveJDBC всегда выбирает все столбцы, потому что, если вы загружаете модель с загруженными частичными атрибутами, у вас модель с дефектами. Столбцы указываются в некоторых крайних случаях, как в RawPaginator: .java#L141" rel="nofollow noreferrer">https://github.com/javalite/javalite/blob/e91ebdd1e4958bc0965d7ee99e6b7debc59a7b85/activejdbc/src/main/java/org/javalite/activejdbc/RawPaginator.java#L141

Здесь нечего заканчивать, поведение намеренное.

person ipolevoy    schedule 14.01.2020