希望在一个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
