Hibernate 请帮助我进行HQL连接查询

Hibernate 请帮助我进行HQL连接查询,hibernate,join,hql,Hibernate,Join,Hql,我刚开始冬眠 我有以下课程: @Entity @Table( name = "Users" ) public class User implements Serializable{ private static final long serialVersionUID = -3550174731709532722L; private String userName; private String pasportID; private Company company; private Stri

我刚开始冬眠

我有以下课程:

@Entity
@Table( name = "Users" )
public class User implements Serializable{

private static final long serialVersionUID = -3550174731709532722L;

private String userName;
private String pasportID;
private Company company; 
private String name;
private String email;
private String phone1;
private String phone2;
private String password; //may be null/empty , will be kept hashed
private boolean isAdmin;
private Date lastLogin;


User() {} //not public on purpose!


public User(String userName, String pasportID, Company company,
        String name, String email, String phone1, String phone2,
        String password, boolean isAdmin) {
    this.userName = userName;
    this.pasportID = pasportID;
    this.company = company;
    this.name = name;
    this.email = email;
    this.phone1 = phone1;
    this.phone2 = phone2;
    this.password = password;
    this.isAdmin = isAdmin;
}


@Id
public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

@OneToOne(cascade = CascadeType.ALL)
public Company getCompany() {
    return company;
}

public void setCompany(Company company) {
    this.company = company;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}

public String getPhone1() {
    return phone1;
}
public void setPhone1(String phone1) {
    this.phone1 = phone1;
}

public String getPhone2() {
    return phone2;
}
public void setPhone2(String phone2) {
    this.phone2 = phone2;
}

public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

public boolean isAdmin() {
    return isAdmin;
}

public void setAdmin(boolean isAdmin) {
    this.isAdmin = isAdmin;
}

@Temporal(TemporalType.TIMESTAMP) 
public Date getLastLogin() {
    return lastLogin;
}

public void setLastLogin(Date lastLogin) {
    this.lastLogin = lastLogin;
}


public String getPasportID() {
    return pasportID;
}


public void setPasportID(String pasportID) {
    this.pasportID = pasportID;
    }
}
以及:

以及枚举:

公共枚举公司类型{A,B,C//TODO}

我想获得在“companyName”公司工作的所有用户的列表。 请确认该用户包含对公司的引用

我很确定需要连接查询,但我似乎无法确定语法

我非常感谢你在这方面的帮助


谢谢

首先,将从用户到公司的映射更改为从..,因为许多用户可以属于一个公司

<many-to-one name="company>
</many-to-one>

首先,非常感谢。如果可以的话,我还有一个后续问题。查询:“从用户u离开外部加入u.company,其中u.company.name=:companyName”).setString(“companyName”,companyName).list();返回一个对象数组,我在调试中看到其中的每个对象都是一个用户和公司的数组。如果我只想接收用户的查询结果,我应该如何修改查询?再次感谢!没关系,我回答自己,只需要在开头加上“选择u”。谢谢
<many-to-one name="company>
</many-to-one>