0

我正在尝试访问 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;
4

0 回答 0