簡體   English   中英

映射地圖 <String, Double> 使用Hibernate和JPA

[英]Mapping a Map<String, Double> with Hibernate and JPA

我嘗試以下映射

@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)]

我已經嘗試添加列和類型信息,但我一直得到相同的錯誤。 另外,我不認為應該給出信息,因為hibernate應該使用泛型聲明(根據如何映射Map <String,Double> )。

我正在使用hibernate版本3.6.4.Final,我嘗試過其他版本

有什么建議么? 謝謝。

編輯:似乎maven hibernate插件已經兩年了,依賴於較舊的hibernate版本...為什么這個插件沒有被維護?

編輯:命名字段“doubleValues”以確保沒有保留名稱問題。

“值”一詞是SQL保留關鍵字,您不能將其用作SQL中的標識符。 如果你試圖命名一些“索引”,同樣的事情就會出現。 如果您將名稱更改為其他名稱,則應該有效。

你懂:

insert into table values (...)

由於使用了其他關鍵字,我在過去也遇到過類似的問題。

順便說一句,在過去,我嘗試了Hibernate 3.6.2和地圖集合的幾個問題。 你可能想看看這個答案 ,因為你似乎正朝着同樣的方向前進。

我希望有所幫助!

您可以嘗試更明確:

@ElementCollection
@CollectionTable(name = "MY_ENTITY_VALUES", joinColumns = @JoinColumn(name = "entity_id"))
@Column(name = "DOUBLE_VALUES")
private Map<String, Double> doubleValues;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM