The major classes to take a look at are PartTree and Part. The former probably will have to be adapted to enable AllIgnoringCase. We probably have to overhaul it to a larger degree as we now have two special clauses a query method name can end with (OrderBy and AllIgnoringCase|AllIgnoreCase) probably might be better to parse both of them using a regular expression that manually splitting the method name. In AbstractQueryCreator we probably should make the PartTree available to subclasses to allow accessing the method global ignore case flag. For the Part class the only necessary change I think should be the constructor that has to check for the given String ending with the keyword and setting a flag accordingly. The accessor for the flag should already take into account that only String based properties can be handled ignoring case.