@CaseInsensitive¶
Scope: property
Marks property as case insensitive. Case insensitive properties (collate ci) are matched in case insensitive way:
select from MyModel where name = 'Test'
If property name is case insensitive then record with name test (for example) will be matched.
public class MyModel {
    @CaseInsensitive
    private String foo;
}
May be used to unset ci marker:
public class MyModel {
    @CaseInsensitive(false)
    private String foo;
}
Marking property ci also affects indexes, created on this property - they are also become ci. In orient ci marker for index and property are different, but if property is ci - index become ci and if index marked as ci then quite possible it will be used when you query by this property - so it may seem that property is ci too. Always marking property as ci (with annotation) removes confusion and grants more consistent behaviour.
So when you need case-insensitive index use both annotations:
public class MyModel {
    @CaseInsensitive
    @Index(...)
    private String foo;
}