ActiveJDB C, как я могу запросить некоторые интересующие меня столбцы в одной таблице - PullRequest
0 голосов
/ 14 января 2020

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

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

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 метод, второй параметр столбцы всегда будет ноль

есть ли нефини sh ТОДО?

1 Ответ

0 голосов
/ 14 января 2020

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

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

...