I have 2 Entities, Coin and CoinRevenue.
Basically, coin holds the price in USD for some other currency.
For example, Coin with symbol EUR with value of 1.0356
@Entity(tableName = "coin")
data class Coin(
@field:PrimaryKey(autoGenerate = false)
var id: String = "",
var symbol: String = "",
var pricInUsd: Float = 0f)
CoinRevenue is an Entity that I use to hold how much coins of that specific coins the User have.
For example, CoinRevenue has relation to Coin Entity with EUR symbol and amount of 1000.
@Entity(tableName = "coinRevenue")
data class CoinRevenueNew(
@field:PrimaryKey(autoGenerate = true)
var id: Int = 0,
var coin: Coin? = null,
var amount: Float = 0f)
Now I want to fetch CoinRevenue from the database and get the updated Coin from the database.
for example, i saved the Coin with (EUR,1.0253)
and than Saved a CoinRevenue with that coin.
After that I updated the Coin with (EUR,2.522)
I want that the Coin object inside CoinRevenue will be updated as well.
I understand that @Embedded just add the inner objet fields as colums to the same parent object.
and when I use relation, I have to use a List or a Set.
but I always have 1 Coin inside CoinRevenue.
My coinDAO:
@Query("select * from coin order by rank")
fun getAllCoins(): Flowable<List<CoinDB>>
@Query("select * from coin where rank = 1")
fun getFirstCoin(): Maybe<CoinDB>
@Query("select * from coin where favourite = 1 order by rank")
fun getAllFavouriteCoins(): Flowable<List<CoinDB>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCoin(coinDB: CoinDB)
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCoins(coinsList: List<CoinDB>)
// -----------------
// CoinRevenue
// -----------------
@Query("select * from coinRevenue order by rank")
fun getAllCoinsRevenue(): Flowable<List<CoinRevenue>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCoinRevenue(coinRevenue: CoinRevenue)
@Delete()
fun deleteCoinRevenue(coinRevenue: CoinRevenue)
What is the best way to creat this?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…