2011-06-28 125 views
1

我想涉及两个表春/ MYSQL中这样如何在春季onttomany关系冬眠

@Table (name = candidatresumeinfo) 
    public class CandidateResumeInfo implements Serializable 
     { 
    List<SelectedResumes> selectedResumes; 
     ............. 
     .............. 

    @JoinColumn(name = "selectedresumeid") 
@OneToMany 
public List<SelectedResumes> getSelectedResumes() { 
    return selectedResumes; 
} 
public void setSelectedResumes(List<SelectedResumes> selectedResumes) { 
    this.selectedResumes = selectedResumes; 
} 

休眠现在,我在我的列表中的数据正确(我在调试检查),但来自服务器的调用失败,这是说原因:空指针异常。

感谢

+0

请提供您的问题堆栈跟踪和其它信息。 – lepike

回答

3

只能在集合使用OneToMany注释,所以你应该将字段更改为集或列表,因为如果使用一对多hibernate会返回多个结果。我想你想在这里使用ManyToOne注释。

  • ManyToOne这里意味着你必须一个SelectedResumes多个CandidateResumeInfo。
  • OneToMany这里表示您有多个SelectedResumes一个CandidateResumeInfo

这个注释命名可能有点奇怪,第一次。希望我帮助。

回答您的评论:

最好的办法是你声明两侧的关系。 这里是例子:

CandidateResumeInfo.java:

@OneToMany(mappedBy="candidateResumeInfo") 
List<SelectedResumes> selectedResumes; 

SelectedResumes.java:

@ManyToOne 
@JoinColumn(name="candidate_resume_info_id") 
CandidateResumeInfo candidateResumeInfo; 
+0

感谢abalogh,我改变它设置为你说的,现在我得到这个错误:调用initmethod失败,嵌套异常是org.hibernate.annotationexception,通过引用未知目标实体属性映射>>任何想法是什么原因 – junaidp

+0

我在答案中写下了你的例子。 – lepike

+0

感谢abalogh,这个例外被删除,谢谢你,我正在尝试你的方式,希望它的作品谢谢 – junaidp