我有一个Employee实体,我能够正确检索描述和名称,但在尝试检索集合时失败。我已将fetch类型设置为eager。
我的控制器中有以下代码:
Employee emp = employeeRepository.findOne(id);
emp.getName()
emp.getDescription();
emp.getProjects() // throws exception on this line
这是我的员工实体
@Entity
public class Employee {
....
/** The name. */
@NotNull
@Size(max = 30)
private String name;
/** The description. */
@NotNull
@Size(max = 250)
private String description;
....
@ElementCollection
@CollectionTable(name = "Projects", joinColumns = @JoinColumn(name = "emp_ID"))
@Basic(fetch = FetchType.EAGER)
private Set<Project> projects = new HashSet<Project>();
我不确定为什么会议不再存在。
答案 0 :(得分:1)
据我所知,ElementCollection仅适用于基本类型。
文档说:
在某些情况下,您不需要关联两个实体,只需简单地关联 创建基本类型或可嵌入对象的集合。使用 @ElementCollection用于此案例。
在这种情况下,您需要使用传统的OneToMany关系。这是一个很好的教程:http://viralpatel.net/blogs/hibernate-one-to-one-mapping-tutorial-using-annotation/