【发布时间】:2018-05-23 19:51:01
【问题描述】:
我们正在使用 Apache Cayenne 将现有的 MS SQL Server 数据库与我们的应用程序集成(我无权更改数据库 DDL,包括表/架构/数据库排序规则)。
数据库正在使用特定的排序规则(克罗地亚语),它定义了“nj”和“dž”等单个字符,所以当我执行LIKE 查询时:
select * from table where name like '%N%'
另一方面,如果我这样做,我得到的结果为零:select * from table where name like '%NJ%'
我得到多个结果。
显然,通过在查询末尾添加collate 可以轻松解决此问题,但我不知道使用 Cayenne 无法做到这一点。有什么方法可以在不放弃整个 ORM 优势的情况下实现这一点?
tl;dr:有没有办法在进入数据库之前对查询进行预处理,如下所示:
query = query + ' collate SQL_Latin1_General_CP1_CI_AS'
【问题讨论】:
标签: apache-cayenne