Я согласен с @Jonathan - но есть немного другой способ express, если это поможет.
Что считается «уже существующим» названием продукта / псевдонимом? Мы говорим о точном совпадении строк? Нужно ли нам учитывать различия в вводе данных (верхний / нижний регистр; слова с / без акцентов / диакритические знаки и т. Д.)? Бизнес-логика c может быть достаточно сложной, если вам нужно более строгое String
равенство.
Я предпочитаю помещать минимальное количество таких поисковых логик c в слой DAO, что часто сводится к тому, что содержится в предложении where
оператора select
(или в варианте Hibernate ORM). Не думайте о таких логиках c как о «проверке на наличие дубликатов», а скорее как о возврате набора результатов. Это спецификация DAO c.
Все остальное (что вы делаете с данными в наборе результатов, чтобы проверить наличие дубликатов) находится на уровне сервиса.
(Кстати, если опыт поможет вам, вам может понадобиться полнотекстовый индекс, если у вас его еще нет.)