2010-08-03 6 views
0

У меня есть класс, который я хочу сохранить с OrmLite, и он хранит большую часть своих данных в HashMap. Я хочу сопоставить эти поля с таблицей в Sqlite, оставив отсутствующих на карте null. Можно ли переопределить методы для сохранения некоторой записи в базе данных с помощью пользовательских реализаций с использованием OrmLite?Можно ли написать собственный SQL в OrmLite?

+0

Предполагается, что эта карта представляет собой набор строк SQL в таблице? Например, если у вас есть 100 вещей на карте, у вас будет 100 строк в таблице SQL? – Gray

+0

@Gray, no. Скажем, что в таблице есть «column1», «column2», «column3». «Карта 'foo',' column3' => 'bar'. Тогда результирующая строка будет 1 => null, 2 => foo, 3 => bar. В любом случае, я переключился на Hibernate, так что этот вопрос не имеет значения. – Fluffy

+0

Я автор OrmLite, и мне просто интересно, есть ли недостающие функциональные возможности, которые я должен рассмотреть. Поэтому идея состоит в том, что в карте хранится одна строка. Ключ String - это имя столбца, а значение Object - связанные с ним данные? Но вы можете использовать объект вместо Карты, верно? Вызовите setColumn2 ("foo") и setColumn3 ("bar"). Разве это не более Java-способ сделать это? – Gray

ответ

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.