【发布时间】:2014-04-03 11:38:19
【问题描述】:
如何为多对多关系创建 Hql 查询。我尝试过但没有得到完美的解决方案。所以请帮助我如何编写查询
模型类
@Entity
@Table(name="TBL_STD_USERPROFILE")
public class UserProfile implements Serializable{
@OrderBy("skillName ASC")
@ManyToMany(targetEntity=Skills.class,cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinTable(name="USER_SKILLS",joinColumns=@JoinColumn(name="FLD_USER_ID",referencedColumnName="FLD_USER_ID"),inverseJoinColumns=@JoinColumn(name="FLD_SKILLS_ID",referencedColumnName="FLD_SKILLS_ID"))
private Set<Skills> skillsList;
}
我的查询
String hql = "from UserProfile u join u.skillsList s where s.SkillName='Java' and u.Firstname='xyz'"
技能 Pojo 类我只是检查技能名称。 所以帮助我如何编写查询
public class Skills implements Serializable{
private static final long serialVersionUID = 1L;
private Long skillId;
private String skillName;
private String skillDesc;
private Long categoryId;
public Long getSkillId() {
return skillId;
}
public void setSkillId(Long skillId) {
this.skillId = skillId;
}
public String getSkillName() {
return skillName;
}
public void setSkillName(String skillName) {
this.skillName = skillName;
}
public String getSkillDesc() {
return skillDesc;
}
public void setSkillDesc(String skillDesc) {
this.skillDesc = skillDesc;
}
public Long getCategoryId() {
return categoryId;
}
public void setCategoryId(Long categoryId) {
this.categoryId = categoryId;
}
}
【问题讨论】:
-
能否贴出 Skills 实体类(只是为了检查您是否使用了正确的变量名)
-
您在 UserProfile 类中有变量 Firstname 吗?我相信它可能是名字或名字.. 也检查一下。
-
先生,是的,我有相同的变量
标签: mysql spring hibernate hql