我有2个实体,硬币和CoinRevenue.
基本上,硬币以其他货币持有美元价格.
例如,带符号EUR的硬币,值为1.0356
@Entity(tableName = "coin")
data class Coin(
@field:PrimaryKey(autoGenerate = false)
var id: String = "",var symbol: String = "",var pricInUsd: Float = 0f)
CoinRevenue是一个实体,我用它来保存用户拥有的特定硬币的硬币数量.
例如,CoinRevenue与Coin Entity有关,EUR符号和金额为1000.
@Entity(tableName = "coinRevenue")
data class CoinRevenueNew(
@field:PrimaryKey(autoGenerate = true)
var id: Int = 0,var coin: Coin? = null,var amount: Float = 0f)
现在我想从数据库中获取CoinRevenue并从数据库中获取更新的Coin.
例如,我用(EUR,1.0253)保存了硬币
而且用这枚硬币保存了一枚CoinRevenue.
之后我更新了硬币(EUR,2.522)
我希望CoinRevenue中的Coin对象也会更新.
我知道@Embedded只是将内部objet字段作为列添加到同一个父对象.
当我使用关系时,我必须使用List或Set.
但我在CoinRevenue里总是有1枚硬币.
我的硬币DA:
@Query("select * from coin order by rank")
fun getAllCoins(): Flowable>
@Query("select * from coin where rank = 1")
fun getFirstCoin(): Maybe
@Query("select * from coin where favourite = 1 order by rank")
fun getAllFavouriteCoins(): Flowable>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCoin(coinDB: CoinDB)
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCoins(coinsList: List)
// -----------------
// CoinRevenue
// -----------------
@Query("select * from coinRevenue order by rank")
fun getAllCoinsRevenue(): Flowable>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCoinRevenue(coinRevenue: CoinRevenue)
@Delete()
fun deleteCoinRevenue(coinRevenue: CoinRevenue)
创造这个的最好方法是什么?