首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必须用@Dao - androidx.room.Dao注释Dao类

必须用@Dao - androidx.room.Dao注释Dao类
EN

Stack Overflow用户
提问于 2022-03-12 10:54:03
回答 1查看 125关注 0票数 1

我看到了这个错误列表。

代码语言:javascript
复制
1) Dao class must be annotated with @Dao - androidx.room.Dao
2) An abstract DAO method must be annotated with one and only one of the following annotations: Insert,Delete,Query,Update,RawQuery - java.lang.annotation.Annotation.equals(java.lang.Object)

就像第二点一样。

请帮帮我。

我的刀课

代码语言:javascript
复制
package database
import androidx.room.*

@Dao
interface UserDao{
    //Product
    @Query("SELECT * FROM product")
     @Delete
    fun deleteProduct(product: Product)

    //Order
    @Query("SELECT * FROM `Order`")
    fun getOrderList():List<Order>
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertOrder(order: Order)
    @Delete
    fun deleteOrder(order: Order)
    ....
}

我的实体类

代码语言:javascript
复制
package database

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity
data class Product(
    @PrimaryKey val id:Int,
    @ColumnInfo(name = "product_name") val productName:String?,
)
@Entity
data class Order(
    @PrimaryKey val id:Int,
    @ColumnInfo(name = "client_id") val clientId:Int?,
    @ColumnInfo(name = "date") val date:String?
)
.......

我的数据库类

代码语言:javascript
复制
package database

import androidx.room.Dao
import androidx.room.Database
import androidx.room.RoomDatabase

@Database(
    entities = [Product::class, Order::class, OrderBody::class,
        OrderToPurchase::class,Price::class,Client::class],
    version = 1
)
abstract class AppDatabase:RoomDatabase(){
    abstract fun userDao():Dao
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-12 17:41:16

你应该使用:-

代码语言:javascript
复制
abstract fun userDao():UserDao

也就是说,userDao函数应该返回、UserDao、类型,而不是Dao类型。

然后你会有一个问题:-

代码语言:javascript
复制
//Product
@Query("SELECT * FROM product")
 @Delete
fun deleteProduct(product: Product)

这是因为@查询没有关联的函数。相反,你想要的是:-

代码语言:javascript
复制
//Product
@Query("SELECT * FROM product")
fun getProductList(): List<Product> //<<<<< ADDED
@Delete
fun deleteProduct(product: Product)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71449074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档