Вы можете использовать выражение OGNL с ${}
.
WHERE
aa.status = ${@com.enum.Status@A.ordinal()}
OR aa.status = ${@com.enum.Status@B.ordinal()}
Ниже приведен исходный ответ.
Неправильно предполагалось, что перечисление передается в качестве параметра.
Для этого есть встроенный обработчик типа.
Вы можете указать javaType
и typeHandler
для каждого параметра.Например,
WHERE
aa.status = #{status,javaType=com.enum.Status,typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}
OR aa.status = #{status,javaType=com.enum.Status,typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}
Или, если вы всегда используете этот тип обработчика для Status
, лучше зарегистрировать его глобально в конфигурации.
<typeHandlers>
<typeHandler
javaType="com.enum.Status"
handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" />
</typeHandlers>
Тогда вы можете просто написать...
WHERE
aa.status = #{status}
OR aa.status = #{status}