Составление картыс Hibernate и JPA - PullRequest
4 голосов
/ 23 мая 2011

Я пробую следующее сопоставление

@ElementCollection
private Map<String, Double> doubleValues;

Но когда я сгенерирую из этого свою схему (используя mvn hibernate3: hbm2ddl ), я получаю следующие ошибки:

org.hibernate.MappingException: Could not determine type for: java.util.Map, at table: ImagerAnalysisResult, for columns: [org.hibernate.mapping.Column(doubleValues)]

Я попытался добавить к этому информацию о столбцах и типах, но получаю ту же ошибку.Кроме того, я не думаю, что информация должна передаваться в режиме гибернации, должна использоваться общая декларация (согласно Как отобразить карту).

Я использую спящий режим версии 3.6.4. Наконец, и я пробовал другие версии

Есть предложения?Спасибо.

Редактировать: похоже, что плагину maven hibernate уже два года, и он зависит от более старой версии hibernate ... почему этот плагин не поддерживается?

Edit: named field "doubleValues ​​", чтобы убедиться, что нет проблем с зарезервированными именами.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2012

Вы можете попытаться быть более точным:

@ElementCollection
@CollectionTable(name = "MY_ENTITY_VALUES", joinColumns = @JoinColumn(name = "entity_id"))
@Column(name = "DOUBLE_VALUES")
private Map<String, Double> doubleValues;
0 голосов
/ 23 мая 2011

Слово «значения» является зарезервированным ключевым словом SQL, и его нельзя использовать для идентификатора в SQL.То же самое произойдет, если вы попытаетесь назвать что-то «индекс».Если вы измените имя на другое, оно должно работать.

Вы знаете:

insert into table values (...)

У меня были подобные проблемы в прошлом, когда я автоматически генерировал код из-за использования других ключевых слов..

Кстати, в прошлом я экспериментировал с несколькими проблемами с Hibernate 3.6.2 и коллекциями карт.Возможно, вам захочется взглянуть на этот ответ , поскольку вы, похоже, движетесь в том же направлении.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...