Java 替换hql的sql查询

Java 替换hql的sql查询,java,sql,hibernate,hql,Java,Sql,Hibernate,Hql,Tnis查询必须是返回列表!!!! 我想知道如何为HQL重写此SQL查询: select candidate.* from candidate inner join candidate_skill on candidate.id = candidate_skill.candidate_id inner join skill on candidate_skill.skill_id = skill.id where skill.id = 1 我想得到一个候选对象(而不是candidate.*),我

Tnis查询必须是返回列表!!!! 我想知道如何为HQL重写此SQL查询:

select candidate.* from candidate inner join candidate_skill on candidate.id = candidate_skill.candidate_id inner join skill on candidate_skill.skill_id = skill.id
where skill.id = 1
我想得到一个候选对象(而不是
candidate.*
),我想用一个技能对象替换
skill.id=1

这不管用吗

from Candidate as candidate
  left outer join candidate.skills as skill
    where skill.id = 1

你能展示你的实体的映射吗?候选人和技能之间的多对多。您需要代码吗?公共类候选扩展Person{private Set skills=new HashSet();@manytomy@LazyCollection(LazyCollectionOption.FALSE)@JoinTable(name=“Candidate_skill”,joinColumns=@JoinColumn(name=“Candidate_id”),inverseJoinColumns=@JoinColumn(name=“skill_id”)/@xmlement公共集getSkills(){return skills;}}通过这个查询,我得到了对象,它注入了skill和Candidate,我只想得到候选对象的列表,如果我这样写,我就得到了NPE