2016-01-05 6 views
0

я Магазины таблицы, соответствующие поля для ormlite объявляются следующим образом:Android/Ormlite - обновление существующих или вставки, если не существует

@DatabaseField(canBeNull = false, columnName = C_SHOP_ID, index=true, id=true) 
    private String shopId; 

    @DatabaseField(dataType = DataType.BYTE_ARRAY, canBeNull = false, columnName = C_SHOP_ICON) 
    private byte[] shopIcon; 

    @DatabaseField(canBeNull = false, columnName = C_SHOP_DETAILS) 
    private String shopDetails; 

    @DatabaseField(canBeNull = false, columnName = C_SHOP_NAME) 
    private String shopName; 

    @DatabaseField(canBeNull = false, columnName = C_SHOP_SHORT_DESCRIPTION) 
    private String shopShorDescription; 

Далее, это метод обновления существующей строки (определены по первичному ключу, справа):

public void updateShop(Shops item) 
    { 
     try 
     { 
      getHelper().getShopItemsDao().update(item); 
     } 
     catch (SQLException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

Теперь мне нужно изменить мой метод updateShop в updateOrInsertShop. Поэтому, если указанный магазин существует (indetified byIDID), он должен быть обновлен. В противном случае его следует вставить как новую строку. Очевидно, что я могу выполнить select by shopID, чтобы определить, существует ли определенный магазин, и затем выполнить update (как указано выше) или create, если он не существует.

Есть ли лучший способ?

+1

'getHelper(). GetShopItemsDao(). CreateOrUpdate (пункт)' –

ответ

2

вы можете использовать следующий метод

createOrUpdate(parameter) 

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

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