Мы используем Apache Cayenne для интеграции уже существующей базы данных MS SQL Server с нашим приложением (у меня нет разрешения для изменения DDL базы данных, включая таблицу / схему / сопоставление базы данных).
База данных использует определенное сопоставление (хорватский), которое определяет отдельные символы, такие как "nj" и "dž", поэтому, когда я делаю запрос LIKE
:
select * from table where name like '%N%'
Iс другой стороны, получить нулевые результаты. Если я сделаю:
select * from table where name like '%NJ%'
, я получу несколько результатов.
Очевидно, что это легко исправить, добавив collate
в конец запроса, но я не знаю способа сделать это с Cayenne.Есть ли способ реализовать это, не отбрасывая преимущества ORM в целом?
tl; dr : Есть ли способ предварительной обработки запросов перед отправкой в базу данных, например:
query = query + ' collate SQL_Latin1_General_CP1_CI_AS'