#java #hibernate
#java #режим гибернации
Вопрос:
у меня есть столбец в базе данных со строкой, т.Е. ‘{es:title_es,en:title_en}’ Итак, мне нужно прочитать его как Map<String,String> , это будет для I18N.
Мне нужна карта с языком в качестве ключа и меткой в качестве значения. Я использую Hiberante 3.3.2 и Java 8 и SQL Server.
Есть ли шанс получить эту карту в EntityClass? Это будет полезно, потому что любая связь с этим объектом будет иметь правильное представление, а не простую строку. И поведение остается инкапсулированным.
Таблица: ЗАГОЛОВКИ КОДА OID 1 XXX ‘{es:title_es,en:title_en}’
Сущность :
@Entity
@Table(name = "TABLE_NAME")
public class EntityClass {
private Long oid;
private String code;
private String titles; ---> i have this but i want private Map<String, String>
@Column(name = "CODE", nullable = false)
public String getCode() {
return code;
}
@Column(name = "TITLES", nullable = false)
public String getTitles() {
return descriptions;
} ----> this work fine, but here i want to get directly the Map,
}```
Комментарии:
1. Какой тип базы данных вы используете для
TITLES
столбца? Какую базу данных вы используете?2. да, я уже записал это в описании
3. Вы можете сделать это с помощью an
AttributeConverter<..>
, но это действительно плохая идея, ИМХО; карта замедлит работу вашего приложения и значительно увеличит время выполнения запросов. Вероятно, вам следует рассмотреть лучшие технические альтернативы.