У меня есть класс, который я хочу сохранить с OrmLite, и он хранит большую часть своих данных в HashMap. Я хочу сопоставить эти поля с таблицей в Sqlite, оставив отсутствующих на карте null
. Можно ли переопределить методы для сохранения некоторой записи в базе данных с помощью пользовательских реализаций с использованием OrmLite?Можно ли написать собственный SQL в OrmLite?
0
A
ответ
0
Я думаю, что roddik продвинулся дальше, но я думал, что отправлю ответ в любом случае как автор OrmLite.
Моя общая реакция заключается в том, что было бы лучше создать объект для хранения столбцов вместо Карты. Хотя SQL - это строка столбцов строки, вся точка ORM заключается в том, что мы можем обрабатывать строки как объекты в Java вместо Map of strings.
@DatabaseTable
public void RandomThing {
@DatabaseField
String column1;
@DatabaseField
String column2;
@DatabaseField
String column3;
public void RandomThing(String column1, String column2, String column3) {
...
}
}
Прямо сейчас нет способа сохранить карту строк в ORMLite.
Предполагается, что эта карта представляет собой набор строк SQL в таблице? Например, если у вас есть 100 вещей на карте, у вас будет 100 строк в таблице SQL? – Gray
@Gray, no. Скажем, что в таблице есть «column1», «column2», «column3». «Карта 'foo',' column3' => 'bar'. Тогда результирующая строка будет 1 => null, 2 => foo, 3 => bar. В любом случае, я переключился на Hibernate, так что этот вопрос не имеет значения. –
Fluffy
Я автор OrmLite, и мне просто интересно, есть ли недостающие функциональные возможности, которые я должен рассмотреть. Поэтому идея состоит в том, что в карте хранится одна строка. Ключ String - это имя столбца, а значение Object - связанные с ним данные? Но вы можете использовать объект вместо Карты, верно? Вызовите setColumn2 ("foo") и setColumn3 ("bar"). Разве это не более Java-способ сделать это? – Gray