Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @列不为';无法使用@ElementCollection_Java_Hibernate_Jpa_Jpa 2.0 - Fatal编程技术网

Java @列不为';无法使用@ElementCollection

Java @列不为';无法使用@ElementCollection,java,hibernate,jpa,jpa-2.0,Java,Hibernate,Jpa,Jpa 2.0,在使用@ElementCollection的情况下,我有一个包含两列的表。 我想重命名这些列。我可以通过@CollectionTable(joinColumns=@JoinColumn(name=“login\u id”))对col1执行此操作。但是如何重命名col2? 这个案例不起作用: @ElementCollection @CollectionTable(joinColumns=@JoinColumn(name="login_id") ) @Column(name = "profile_i

在使用
@ElementCollection
的情况下,我有一个包含两列的表。 我想重命名这些列。我可以通过
@CollectionTable(joinColumns=@JoinColumn(name=“login\u id”))对
col1
执行此操作。
但是如何重命名
col2
? 这个案例不起作用:

@ElementCollection
@CollectionTable(joinColumns=@JoinColumn(name="login_id")
)
@Column(name = "profile_id")
public Set<Profile> getDefaultProfiles() {
    return defaultProfiles;
}
@ElementCollection
@CollectionTable(joinColumns=@JoinColumn(name=“login\u id”)
)
@列(name=“profile\u id”)
公共集getDefaultProfiles(){
返回默认配置文件;
}
col2
stay
defaultProfiles\u id
的名称


我使用Hibernate 4.3.4.Final

这是一个使用映射的完整工作示例:

@ElementCollection
@MapKeyColumn(name="name")
@Column(name="value")
@CollectionTable(name="example_attributes", joinColumns=@JoinColumn(name="example_id"))
private Map<String, String> attributes = new HashMap<>();
@ElementCollection
@MapKeyColumn(name=“name”)
@列(name=“value”)
@CollectionTable(name=“example\u attributes”,joinColumns=@JoinColumn(name=“example\u id”))
私有映射属性=新HashMap();
以及一个完整的示例,其中包含一个列表:

@ElementCollection(fetch = FetchType.EAGER)
@Column(name = "attribute")
@CollectionTable(name = "entity_attributes", joinColumns = @JoinColumn(name = "entity_id"))
private List<String> attributes = new ArrayList<>();
@ElementCollection(fetch=FetchType.EAGER)
@列(name=“attribute”)
@CollectionTable(name=“entity\u attributes”,joinColumns=@JoinColumn(name=“entity\u id”))
私有列表属性=新的ArrayList();

什么是
配置文件
?如果它是一个实体,为什么要使用
@ElementCollection
来引用它?你的意思是我应该使用
@OneToMany
来代替它?是的,
@OneToMany
@ManyToMany
,这取决于你需要什么。好的。看起来
@Column
仅适用于基本数据类型的
@ElementCollection
,例如
Set
它也适用于地图