希望在一个hibernae标准中添加两个不同的表(类)
我有代码
ArrayList<String> city = 'Anniston'; Criteria crit = session.createCriteria(CandidateResumeInfo.class); crit.add(Restrictions.eq("resumeSearchable", 1));
现在我想添加下面的标准
crit.add(Restrictions.in("cities", city));
但问题在于CandidateInfo类中的城市列不在CandidateResumeInfo.class
中。
任何想法如何在上面添加这个标准,以及如何在上面的标准中添加CandidateInfo
类。
猜猜我需要做连接或链接这两个表,但如何,实体类中会有任何更改?
这是我的两个班
@Entity @Table(name="candidateinfo") public class CandidateInfo implements java.io.Serializable { private int id; private String firstName; private String lastName; private String city; private String stateProvince; private String zip; private String country; private Set candidateVideos = new HashSet(); private String yearsOfExperience; private String loginName; private String password; private String address; private String emailAddress; private int passwordResetQuestionId; private String passwordResetAnswer; private String middleName; private String homeEveningPhone; private String workDayPhone; private boolean videoSubmited; private boolean resumeSubmited; private String cellPhone; private String availability=null; private String workStatus=null; private String desiredSalary=null; private String currentJobLevel=null; private String currentJobTitle=null; private String targetJobTitle=null; private String alternateTargetJobTitle1=null; private String alternateTargetJobTitle2=null; private String targetJobType=null; private String eventType=null; private String joinDate = null; private String lastLoginDate = null; //private SkillsBean skillsInfo; private Set skills = new HashSet(); private Set candidateResumes = new HashSet(); private Set targetJobCategoriesId = new HashSet(); private Set targetJobLocationsId = new HashSet(); public CandidateInfo() { } @Column(name="userid") public int getId() { return this.id; } @Column(name="loginname") public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } @Column(name="password") public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Column(name="address") public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } ............................................................................ @Entity @Table(name="candidateresumeinfo") public class CandidateResumeInfo implements Serializable{ private int resumeId; private int candidate_userId; private String resumeFileLocation; private int resumeSearchable; private Date lastUpdateDate; private String resumeTitle; private String resumeText; private String skills; private int rowCount; @Column(name="resumeSearchable") public int isResumeSearchable() { return resumeSearchable; } public void setResumeSearchable(int resumeSearchable) { this.resumeSearchable = resumeSearchable; } @Id @GeneratedValue @Column(name="resumeid") public int getResumeId() { return resumeId; } public void setResumeId(int resumeId) { this.resumeId = resumeId; } @Column(name="candidate_userid") public int getCandidate_userId() { return candidate_userId; } public void setCandidate_userId(int candidate_userId) { this.candidate_userId = candidate_userId; } @Column(name="resumelocation") public String getResumeFileLocation() { return resumeFileLocation; } public void setResumeFileLocation(String resumeFileLocation) { this.resumeFileLocation = resumeFileLocation; } @Column(name="resumetitle") public String getResumeTitle() { return resumeTitle; } public void setResumeTitle(String resumeTitle) { this.resumeTitle = resumeTitle; } @Column(name="resumetext") public String getResumeText() { return resumeText; } public void setResumeText(String resumeText) { this.resumeText = resumeText; } public void setLastUpdateDate(Date lastUpdateDate) { this.lastUpdateDate = lastUpdateDate; } @Column(name="lastUpdateDate") public Date getLastUpdateDate() { return lastUpdateDate; } @Column(name="skills") public String getSkills() { return skills; } public void setSkills(String skills) { this.skills = skills; } @Transient public int getRowCount() { return rowCount; } public void setRowCount(int count) { this.rowCount = count; }
谢谢
你需要添加关系像
@ManyToOne(cascade = CascadeType.ALL)
public CandidateResumeInfo getCandidateResumeInfo () {
return this.candidateResumeInfo ;
}
拥有从CandidateResumeInfo
到CandidateInfo
的多对一关联。
在CandidateResumeInfo
类中添加新成员说,
@ManyToOne()
@JoinColumn(name = "candidate_userId")
private CandidateInfo candidateInfo;
// Also add getters and setters
现在在查询中添加一个新的别名,
crit.createAlias("candidateInfo", "candidateInfo");
crit.add(Restrictions.in("candidateInfo.city", city));
链接地址: http://www.djcxy.com/p/37091.html
上一篇: want to add two different tables(classes) in one hibernae criteria