Очистка данных; какой слой?

У меня есть приложение, основанное на Model-Glue: Unity, которое содержит несколько форм поиска. Мне нужно обрезать начальные и конечные пробелы из строк поиска, прежде чем использовать их для запроса к базе данных. Я также храню условия поиска в бине, который пользователь может сохранить и использовать повторно.

Моя проблема в том, что я не уверен, где выполнить эту отделку (). Боб, кажется, не подходит для этого, так как я держу бин простым (без логики). Обычно я бы позаботился об этом при обновлении компонента, но я использую MakeEventBean для простоты. Повторное касание всех данных на уровне сервиса кажется ненужным уровнем накладных расходов. И, наконец, выполнение этого в уровне данных с фактическим запросом SQL также не кажется правильным. Это сработает, но информация в моем поисковом бине все равно будет неправильной.

Что вы сделали в таких случаях?

2 ответа

Решение

В итоге я сделал свои Бобы немного умнее, чем они. Вместо обезьяны с каждым методом setThing(), я добавил trimAll() метод простой применяется trim() каждому из частных свойств в Бобе.

Отказ от ответственности: я не пользователь MG, поэтому я не уверен, будет ли это хорошим и возможным подходом. Просто хочу поделиться идеей.

В случае бинов Transfer ORM я делаю такие специфические вещи в декораторах, которые расширяют автоматически генерируемые бины.

Например, я могу легко переопределить сеттер setSearchPhrase(фразу), где обрезать значение аргумента и вызвать оригинальный метод.

Другие вопросы по тегам