Как удалить конечные пробелы в столбце базы данных? - PullRequest
0 голосов
/ 27 февраля 2009

У меня есть EJB 3-компонент, который имеет свойство String с аннотацией: @Column (unique = true). Это значение устанавливается со страницы JSF.

Все работает нормально, пока пользователь не добавляет пробелы и добавляет конец поля ввода. В этом случае «someName» и «someName____» обрабатываются не как уникальные и хранятся в базе данных. Есть ли удобный способ удалить конечные (и ведущие) пробелы на земле приложения или это нужно сделать на земле базы данных?

В конце строки находится SQL Server 2008, и я использую Hibernate для ORM.

Повторная публикация вашего кода на сервере разработчика творит чудеса Извините ^^

Ответы [ 2 ]

3 голосов
/ 27 февраля 2009

Поскольку, как вы говорите в своем комментарии к ответу Мехрада, у вас есть контроль над исходным кодом, я настоятельно рекомендую вам выяснить, что не так с вашим звонком на trim(), а не просто взломать свой путь.

Возможно, вы делаете

public void setMyString(String myString) {
    myString.trim();
    this.myString = myString;
}

где вы должны использовать возвращаемое значение trim()? (Помните, что строки Java неизменны.)

public void setMyString(String myString) {
    this.myString = myString.trim();
}

(При необходимости добавьте пустые проверки.)

1 голос
/ 27 февраля 2009

Если вы не хотите изменять приложение, чтобы обрезать строку перед отправкой на сервер. Вы можете либо:

  • Если вы используете хранимые процедуры для вставки данных, измените хранимую процедуру и заставьте ее обрезать строку
  • Используйте триггер для обрезки строки
...