я Магазины таблицы, соответствующие поля для 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
, если он не существует.
Есть ли лучший способ?
'getHelper(). GetShopItemsDao(). CreateOrUpdate (пункт)' –