ORMLite - посторонний объект
Как правильно использовать иностранный с ORMLite?
У меня есть валютная пара класса, она состоит из 2 экземпляров валюты класса. Я понимаю, что БД будет сохранять не экземпляры, а их идентификаторы.
Здесь соответствующие части этих классов.
DatabaseTable(tableName = "CurrencyPairs")
public class CurrencyPair {
@DatabaseField(id = true)
private int id;
@DatabaseField(columnName = "baseCurrency_ID", **foreign** = true )
private CCC_Currency baseCurrency;
@DatabaseField(columnName = "quotedCurrency_ID", **foreign** = true )
private CCC_Currency quotedCurrency;
@DatabaseField(columnName = "subscribed")
private boolean subscribed;
а также
@DatabaseTable(tableName = "CCC_Currencies")
public class CCC_Currency {
@DatabaseField(columnName = "currencyName")
private String currencyName;
@DatabaseField(columnName = "shortName")
private String shortName;
@DatabaseField(columnName = "symbol")
private String symbol;
@DatabaseField(columnName = "isFiat")
private boolean isFiat;
@DatabaseField(generatedId = true)
private int id;
Когда я сейчас загружаю Валютные пары с
try {
CurrencyPair_Dao = DaoManager.createDao(dbHandler.getInstance(),
CurrencyPair.class);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Get Objects and add them to the library
List<CurrencyPair> all = null;
try {
all = CurrencyPair_Dao.queryForAll();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Он создает currencyPairs в списке всех, но они поля (например, base Currency) являются нулевыми. Каким-то образом идентификатор не связан с самими объектами.
Что мне не хватает?
Спасибо за помощь
1 ответ
Во-первых, вам нужно сохранить один экземпляр CCC_Concurrency, поэтому OrmLite установит сгенерированный идентификатор. затем установите этот экземпляр на объекте ConcurrencyPair и сохраните его.