You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by lantis system <la...@gmail.com> on 2017/04/23 20:10:53 UTC

finding turkish characters in like expression

hello all...
 
i use memory expression and filter.  FilterObjects returns an empty list if the expression to be filtered has Turkish characters.

For example
Expression exp = XXX.yyy.likeIgnoreCase('%turkish characters(\u011fü\u015fiöç\u011eÜ\u015e\u0130ÖÇ)%')

and 

List list = exp.filterObjects(mylist) ; 

Unfortunately list result  is empty.   


Thank you in advance 


Re: finding turkish characters in like expression

Posted by Andrus Adamchik <an...@objectstyle.org>.
Hi there,

I suspect there may be a bug in Cayenne. When building a match Pattern we are using Pattern.CASE_INSENSITIVE flag, while we should probably be using (Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE). We'll investigate.

In the meantime can you please confirm that "match(..)" and "like(..)" expressions work for you? This will narrow the problem to just case-insensitive like.

Thanks,
Andrus



> On Apr 23, 2017, at 11:10 PM, lantis system <la...@gmail.com> wrote:
> 
> 
> hello all...
> 
> i use memory expression and filter.  FilterObjects returns an empty list if the expression to be filtered has Turkish characters.
> 
> For example
> Expression exp = XXX.yyy.likeIgnoreCase('%turkish characters(ğüşiöçĞÜŞİÖÇ)%')
> 
> and 
> 
> List list = exp.filterObjects(mylist) ; 
> 
> Unfortunately list result  is empty.   
> 
> 
> Thank you in advance 
>