2017-04-02 123 views
0

我正在使用內部使用JPA annotatons和hibernate映射對象的dropwizard。其中一個對象都有我所定義的地圖領域的無法使用JPA註釋映射哈希映射

@Column 
    @ElementCollection(targetClass=String.class) 
    Map<String, String> routes; 

我一直看到下面的錯誤

org.hibernate.MappingException: Could not determine type for: java.util.Map, at table 

我已經嘗試了一些關於SO

新增提到的事情@MapKey註釋 添加註釋獲取者 更改映射到HashMap似乎沒有解決它。

+0

你想在哪裏堅持這個地圖?成列?成一個(加入)表?成串行化列? 「targetClass」試圖做什麼?你有在字段上定義的泛型,所以targetClass是無關緊要的 –

+0

是作爲表序列化的一列 –

+0

在這種情況下,您可以嘗試'@ Lob',或者使用'@ AttributeConverter'就像這個鏈接http:// www .datanucleus.org/products/accessplatform_5_1/jpa/mapping.html#one_many_map_converter_simple_simple –

回答

0

您可以使用@MapKeyColumn(name =「column_name」)。此鏈接可能有用:https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Map_Key_Columns_.28JPA_2.0.29

+0

添加@MapKeyColumn註釋後的結果相同 –

+0

您是否嘗試使用Map 下面的代碼routes = new HashMap ();還使用@MapKeyColumn。檢查這個類似的問題:http://stackoverflow.com/questions/4324839/java-hibernate-mapping-exception-could-not-determine-type-for-java-util-map – Sehej

+0

和這個:http:// stackoverflow。 COM /問題/ 287201 /如何對堅持-A-財產的型liststring功能於JPA – Sehej