28
votes

At Spring's @Cacheable annotation I want to specify an unless condition.

However my return value is neither a primitive type nor a Java bean, but an Enum.

How can I compare for equality with another Enum in SpEL (Spring Expression Language)?

2
Can you be more specific? What are the two operands? What are you comparing? - Sotirios Delimanolis
@SotiriosDelimanolis An instance of the Enum and a value of the enum. Like instance == Enum.CERTAIN_VALUE. - Harold L. Brown

2 Answers

67
votes
#result == T(fully.qualified.path.to.AnEnum).A_VALUE

Reference here:

You can use the special T operator to specify an instance of java.lang.Class (the type).

24
votes

#object.someEnumProperty.name() == 'CERTAIN_VALUE'

would work as well.