у меня есть два класса сущности
@Entity(tableName = "TrackingItemTable")
data class TrackingItem(
@ColumnInfo val ProductName:String,
@ColumnInfo val ProductPrice:Float,
@ColumnInfo val ProductImage:String,
@ColumnInfo val ProductCurrencySymbol:String,
@ColumnInfo val ProductAddedDate: Date,
@ColumnInfo val ProductSiteName:String,
@PrimaryKey @ColumnInfo val ProductUrl:String,
@ColumnInfo val ProductAffiliateUrl:String,
@ColumnInfo var ProductNotificationPrice:Float? = null,
@ColumnInfo var ProductLastUpdatedPrice:Float
)
и имеет первичные ключевые отношения с другим объектом
@Entity(foreignKeys = arrayOf(ForeignKey(entity = TrackingItem::class,
parentColumns = arrayOf("ProductUrl"),
childColumns = arrayOf("ProductAnalyticsUrl"),
onDelete = ForeignKey.CASCADE)), tableName = "TrackingItemDataTable")
data class TrackingItemData(@ColumnInfo val ProductAnalyticsUrl:String,
@ColumnInfo val Price:Float,
@ColumnInfo val Date: Long,
@PrimaryKey(autoGenerate = true) @ColumnInfo var id:Int = 0
)
всякий раз, когда я пытаюсь вставить строку в таблицу TrackingItemData, строка не вставляется, однако комната возвращает значение Long, вот мой дао
@Dao
interface TrackingItemDataDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertTrackingItemData(trackingItemData:TrackingItemData): Single<Long>
@Query("SELECT * FROM TrackingItemDataTable")
fun getAllTrackingItems():LiveData<List<TrackingItemData>>
}
и я вставляю данные вот так
Db.analyticsDao().insertTrackingItemData(
TrackingItemData(ProductAnalyticsUrl = url,
Price = currentPrice,
Date = currentTime))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Log.d("shopzy", it.toString())
},{
Log.d("shopzy", it.toString())
})
бросаемый из rx java не перехватывал никаких исключений, код выводит длинное значение, но когда я загружаю БД из эмулятора и вижу таблицу, я не могу найти в ней строку, а getAllTrackingItems () из дао возвращает 0 строк что я сделал не так?