2016-08-18 4 views
1

Возможно ли получить только одно поле из базы данных с помощью SORM Framework?Извлечение только одного поля с использованием рамки sorm

То, что я хочу в простой SQL будет:

SELECT node_id FROM messages 

Я не могу показаться, чтобы быть в состоянии воспроизвести это в СОРМ. Я знаю, что это может быть против того, как должен работать sorm, но сейчас у меня есть две огромные таблицы с различными типами сообщений. Меня попросили получить все уникальные node_id s из обеих таблиц.

Я знаю, что могу просто запросить обе таблицы с помощью sorm и проанализировать все данные, но я хотел бы поместить базу данных в работу. Очевидно, это было бы еще лучше, если бы можно было получить только уникальный node_id s в одном вызове db.

Прямо сейчас, просто запрашивая все и анализируя его, он занимает слишком много времени.

ответ

0

Там, кажется, не будет поддержки ОРМ за то, что вы хотите делать, если node_id не случится быть первичным ключом вашего Message объекта:

val messages = Db.query[Message].fetchIds() 

В этом случае вам не нужно беспокоиться об этом UNIQUE, так как первичные ключи по определению уникальны. В качестве альтернативы, вы можете запустить пользовательский SQL-запрос:

Db.fetchWithSql[Message]("SELECT DISTINCT node_id FROM messages") 

Примечание этого последний может быть напечатанным неправильно: вы должны попробовать его на вашу базу данных. Вам может понадобиться fetchWithSql[Int] или какой-либо другой вариант: непонятно, что SORM делает в случае, если первичный ключ не был запрошен.

+0

Привет и благодарю вас за помощь. К сожалению, node_id не является уникальным или основным идентификатором любой таблицы. Также я считаю, что ограничение SORM 'fetchWithSql' заключается в том, что он может обрабатывать только столбцы id. Я попробовал это, и это дает мне утверждение 's assert failed: sql-statement должен выбрать только id-column' – sergei

+0

@MikeJones Ах, тогда вам может быть не повезло. SORM кажется очень неразработанной структурой на этом этапе, без большого количества вещей, которые, по вашему мнению, были бы очевидны, к сожалению. Я действительно ничего не могу найти в их источнике, что предполагает, что это возможно, помимо 'fetchWithSql'. –

 Смежные вопросы

  • Нет связанных вопросов^_^