*我在一个实体中得到以下内容。
@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))
任何人都知道我应该如何做到这一点是property_KEY不是null吗? 我使用Hibernate Hibernate 3.6.5.Final,MSSQL
// Trind
答案 0 :(得分:1)
我相信你可以这样做:
@CollectionTable(
name="FrameworkUser_Properties",
joinColumns=@JoinColumn(name="OWNER_ID", nullable = false)
)
答案 1 :(得分:1)
您似乎正在使用hashmap映射值类型的集合。您必须使用@MapKeyColumn
例如,您可以尝试查看问题是否可以解决:
@ElementCollection(fetch=FetchType.EAGER)
@CollectionTable(name="FrameworkUser_Properties")
@MapKeyColumn
public Map<String, String> getProperties() {
return properties;
}