У меня есть какая-то сущность, такая как Адрес.Из-за проблем с производительностью я хочу сохранить всю сущность в одном поле, например "улица; почтовый индекс; город".
Для этого можно создать EnhancedUserType.В некоторых примерах, которые я обнаружил, и в источниках hibernate метод objectToSQLString всегда реализован так:
@Override
public String objectToSQLString(Object object) {
if (object != null) {
Address oo = (Address)object;
return "'" + oo.toSomeString() + "'";
} else {
return "";
}
}
Я не понимаю, возвращает ли метод представление SQL или нет.Почему специальные символы, такие как ['], не экранируются внутри строки?Как мне избежать их?Стандартным способом SQL для экранирования является ['] -> [' '], но на некоторых диалектах [backslash] также необходимо экранировать.
Есть ли какая-нибудь утилита Hibernate, которая может сделать экранирование для меня зависимымна диалекте?Как Hibernate сам решает эту проблему?Я не смог найти его в исходном коде: - (