我正在尝试访问 my 的成员变量,该变量是entity用 my 中的自定义 getter 定义的query。我的问题是,@Query()当我将变量声明为val. 这是否与使用时没有支持字段的事实有关val?
实体
@Entity(tableName = "products")
data class ProductCacheEntity(
@PrimaryKey(autoGenerate = true)
val id: Int,
val name: String = "",
val price: Float = 0F,
val optionalServicePricing: Float = 0F,
val optionalServiceNote: String = "",
val category: String = "",
val note: String = "",
var articelNumber: Int = 0,
val quantity: Int = 1,
val images: ArrayList<String> = arrayListOf(),
val description: ArrayList<ProductDescription> = arrayListOf(),
val technicalDescription: ArrayList<ProductDescription>? = arrayListOf(),
val hasAccessories: Boolean = false
)
不工作
// Not working with private set
var combinedPrice: Float = 0.0f
get() = if (serviceWanted) price + optionalServicePricing else price
private set
@Query("SELECT SUM(combinedPrice * quantity) FROM products")
fun getSummedPrice(): LiveData<Float>
不工作
val combinedPrice: Float
get() = if (serviceWanted) price + optionalServicePricing else price
@Query("SELECT SUM(combinedPrice * quantity) FROM products") // unresolved reference combinedPrice
fun getSummedPrice(): LiveData<Float>
堆栈跟踪
C:\Users\Censored\AndroidStudioProjects\Censored\app\build\tmp\kapt3\stubs\debug\com\Censored\app\framework\datasource\models\product\ProductCacheEntity.java:14: error: Cannot find setter for field.
private float combinedPrice = 0.0F;