我想在查询中定义和使用全局参数,因为它们在某些查询之间很常见,我有全局的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查询中处理它。