2011-07-11 172 views
1

*我在實體中獲得以下內容。休眠不會創建表

@Entity("User") 
public class User implements java.io.Serializable { 
    @ElementCollection(fetch=FetchType.EAGER) 
    @CollectionTable(name="FrameworkUser_Properties") 
    public Map<String, String> getProperties() { 
     return properties; 
    } 
    public void setProperties(Map<String, String> properties) { 
     this.properties = properties; 
    } 
} 

我得到以下錯誤

Unsuccessful: create table FrameworkUser_Properties (User_id int not null, properties varchar(255) null, properties_KEY varchar(255) null, primary key (User_id, properties_KEY)) 

任何人有任何想法,我應該怎麼做,是properties_KEY沒有空呢? 我使用Hibernate休眠3.6.5.Final,MSSQL

// Trind

+0

是如何故在聲明定義properties_KEY問題創建表語句爲null或者是爲什麼無法創建表的問題? – padis

+0

我希望能夠創建表格。肯·陳爲我解決了這個問題。 – Trind

回答

1

似乎要映射的收藏價值鍵入使用散列映射。您必須指定使用@MapKeyColumn

例如,你可以嘗試一下,看是否可以解決問題HashMap中的鍵列:

@ElementCollection(fetch=FetchType.EAGER) 
@CollectionTable(name="FrameworkUser_Properties") 
@MapKeyColumn 
public Map<String, String> getProperties() { 
      return properties; 
} 
+0

感謝這工作完美:) – Trind

1

我相信你可以做這樣的事情:

@CollectionTable(
     name="FrameworkUser_Properties", 
     [email protected](name="OWNER_ID", nullable = false) 
)