在房间查询中使用全局参数

时间:2017-12-19 03:50:05

标签: java android sqlite android-room

我想在查询中定义和使用全局参数,因为它们在某些查询之间很常见,我有全局的RoleTypes数组:

private final static RoleType[] ROLE_TYPES = new RoleType[]{RoleType.MEMBER, RoleType.ADMIN};

RoleType是一个枚举,我想在以下查询中使用它:

@Query("SELECT * FROM dialog WHERE dialog_role = " + ROLE_TYPES)
public abstract List<Dialog> getMyItems();

@Query("SELECT * FROM dialog WHERE dialog_type =:dialogType AND dialog_role = " + ROLE_TYPES)
public abstract List<Dialog> getMyItems(DialogType dialogType);

我收到错误:Attribute value must be constant。如果我将数组作为参数传递给已解决的函数问题:

@Query("SELECT * FROM dialog WHERE dialog_role =:roleTypes")
public abstract List<Dialog> getMyItems(RoleType[] roleTypes);

但我不想重复传递参数,我想在dao查询中处理它。

0 个答案:

没有答案