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

Ali*_*iSh 7 java sqlite android android-room

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

private final static RoleType[] ROLE_TYPES = new RoleType[]{RoleType.MEMBER, RoleType.ADMIN};
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

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

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

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