Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > сохранение в БД, не учитывая регистр


Автор: Samotnik 4.10.2010, 12:51
привет народ. 
Какой способ можете посоветовать в следующей ситуации :
Есть функционал сохранения данных в БД через hibernate. Сейчас, если сохранить например одно слово test, а затем tEst, то сохранение произойдет, и в БД окажутся 2 записи. А как сделать, чтобы если одно и тоже слово, но в разном регистре, то не сохранялось, а выкидывало бы что-то вроде ConstraintViolationException ?
конечно самый простой и примитивный способ это делать toLowerCase() стрингу, но это не то что нужно. Было бы лучше реализовать это на уровне БД.
Есть какие-нибуть идеи ?

Автор: LSD 4.10.2010, 14:41
На Oracle можно создать функциональный уникальный индекс.

Если база такого не поддерживает, то самый нормальный способ, это добавить поле lower_name (в хибер его мапить не нужно) на которое наложить ограничение уникальности и в триггере следить за тем, чтобы туда прописывалось нужное значение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)