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 и сохраните его.

Другие вопросы по тегам