我的Dao类里面的查询注释,为什么查询不到实体类里面注释的表明呢?这里说sql未解析
是依赖缺少吗
【相关推荐】
Dao层是封装业务逻辑的地方,尽量将可能用到的CRUD操作写到这里。
@Dao
interface UserDao {
@Insert
fun insertUser(user: User): Long
@Update
fun updateUser(newUser: User)
@Query("select * from User")
fun loadAllUsers(): List<User>
@Query("select * from User where age > :age")
fun loadUsersOlderThan(age: Int): List<User>
@Delete
fun deleteUser(user: User)
@Query("delete from User where lastName = :lastName")
fun deleteUserByLastName(lastName: String): Int
}
这里的插入、更新、删除操作为了简便演示并没有写SQL语句进行操作,但是它们一样能使用SQL语句进行操作。我们可以看到 @Query注解下并不全是查询操作,最后一个就是删除操作,这里使用@Query注解而不使用@Delete的原因是下面那个使用的是非实体类参数,使用非实体类参数来进行CRUD操作时统一使用@Query注解。在查询操作中可使用使用传入的变量对数据进行动态的查询,就像第二个查询操作一样。