场景:使用基于xml的映射的Hibernate 3.6,Java7,Postgresql 8.3。
我目前正在重构一个应用程序,我已经为数据库创建了这个场景:
main_table
id integer
other_field string
(id) PK
secondary_table
other_field string
value string
(other_field, value) PK
基本上,有一个辅助表,其中包含" other_field"在主桌上匹配;我需要在main_table中提取某个记录的所有值并映射它们。
在SQL中,我使用如下查询:
SELECT value FROM secondary table INNER JOIN main_table ON secondary_table.other_field == main_table.other_field where main_table.id = 1;
但是我不明白如何使用这样的查询(或者如果我建议的那个不是hibernate友好的那个)将Java基本类型(字符串)的集合映射到Main对象,那么我可以拥有"价值观"我的映射对象上的属性,应该是一个Set< String>
答案 0 :(得分:0)
我认为这就是你要找的东西:
@Entity
public class Primary { // Main table
@Id
@Column(name="EMP_ID")
private long id;
...
@ElementCollection
@CollectionTable(
name="PRIMARY_SECONDARY",
joinColumns=@JoinColumn(name="PRIMARY_ID")
)
private Set<Secondary> phones;
...
}
@Embeddable
public class Secondary { // Secondary table
private String value;
...
}