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 查询中处理它。