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
变量。
答案 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无法在方法中找到匹配的命名参数,则会引发编译时错误。