如何在Query Anotation中

时间:2017-11-07 04:30:09

标签: android android-room

1.这是我的MessageDao interface

 @Dao public interface MessageDao {
            @Query(Constants.QUERY.query)
            List<Message> getAllMessages();
    }

2.从Activity我希望传递整个查询以获取消息。

String query = "select message from message where "+ whereLike + "group by message.messageId";

如何在查询anotation中执行query变量。

1 个答案:

答案 0 :(得分:1)

@Dao public interface MyDao {
@Query("SELECT * FROM user WHERE age BETWEEN :minAge AND      :maxAge")
public User[] loadAllUsersBetweenAges(int minAge, int maxAge);

@Query("SELECT * FROM user WHERE first_name LIKE :search "
       + "OR last_name LIKE :search")
public List<User> findUserWithName(String search);}

上面查询中的值以冒号作为前缀,这意味着这些值将作为与查询关联的方法的参数提供给查询。 Room通过名称将查询内的这些值映射到方法内的传递参数。并且,如果Room无法在方法中找到匹配的命名参数,则会引发编译时错误。