hibernate 多对一 ,多对多 hql 查询语句

qq_18997393 2017-07-19 03:32:00
三个层级,公司,部门,员工
点击公司可以查到所有员工实体,点击部门可以查到当前部门和下属部门的说有员工实体,
hql怎么写啊?????
相关代码如下:
CompanyInfo
@Entity
@Table(name="COMPANY_INFO")
public class CompanyInfo extends BaseEntity {

@Column(name="companyCode")
private String companyCode;

@Column(name="companyName")
private String companyName;

@Column(name="eDesc")
private String eDesc;

public String getCompanyCode() {
return companyCode;
}

public void setCompanyCode(String companyCode) {
this.companyCode = companyCode;
}

public String getCompanyName() {
return companyName;
}

public void setCompanyName(String companyName) {
this.companyName = companyName;
}

public String geteDesc() {
return eDesc;
}

public void seteDesc(String eDesc) {
this.eDesc = eDesc;
}

Organization
@Entity
@Table(name="WMS_ORG")
public class Organization extends BaseEntity{

@Column(name="orgName")
private String orgName;

@Column(name="orgCode")
private String orgCode;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="pid")
@NotFound(action=NotFoundAction.IGNORE)
private Organization parent;

@Column(name="eLevel")
private Short eLevel;

@Column(name="isLeaf")
private Boolean isLeaf;

@Column(name="eSort")
private Short eSort;

@Column(name="isValid")
private Boolean isValid;

@Column(name="eType")
private String eType;

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="companyId")
private CompanyInfo company;

@OneToMany(fetch = FetchType.LAZY,mappedBy = "parent")
private Set<Organization> children = new HashSet<Organization>();

@OneToMany(fetch = FetchType.LAZY,mappedBy = "organization")
private Set<WMSUser> employees = new HashSet<WMSUser>();

public String getOrgName() {
return orgName;
}

public void setOrgName(String orgName) {
this.orgName = orgName;
}

public String getOrgCode() {
return orgCode;
}

public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}

public Organization getParent() {
return parent;
}

public void setParent(Organization parent) {
this.parent = parent;
}

public Short geteLevel() {
return eLevel;
}

public void seteLevel(Short eLevel) {
this.eLevel = eLevel;
}

public Boolean getIsLeaf() {
return isLeaf;
}

public void setIsLeaf(Boolean isLeaf) {
this.isLeaf = isLeaf;
}

public Short geteSort() {
return eSort;
}

public void seteSort(Short eSort) {
this.eSort = eSort;
}

public Boolean getIsValid() {
return isValid;
}

public void setIsValid(Boolean isValid) {
this.isValid = isValid;
}

public String geteType() {
return eType;
}

public void seteType(String eType) {
this.eType = eType;
}

public CompanyInfo getCompany() {
return company;
}

public void setCompany(CompanyInfo company) {
this.company = company;
}

public Set<Organization> getChildren() {
return children;
}

public Set<WMSUser> getEmployees() {
return employees;
}

@Override
public boolean equals(Object obj) {
if(obj == null) {
return false;
}
if(obj instanceof Organization) {
Organization org = (Organization)obj;
if(org.getId().equals(this.getId())) {
return true;
}
}
return false;
}

@Override
public int hashCode() {
return ("org_" + getId()).hashCode();
}
}

WMSUser
package com.zotye.wms.rbac.entity;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

import com.zotye.common.base.entity.BaseEntity;


@Entity
@Table(name="WMS_USER")
public class WMSUser extends BaseEntity{

@NotNull
@Column(name="userName",nullable = false)
private String userName;

@NotNull
@Column(name="passWord",nullable = false)
private String passWord;

@Column(name="nickName")
private String nickName;

@NotNull
@Column(name="isValid",nullable = false)
private boolean isValid;


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "createUser",nullable=false)
private WMSUser createUser;

@NotNull
@Temporal(TemporalType.DATE)
@Column(name="createTime",nullable=false,updatable=false)
private Date createTime;

@NotNull
@Column(name="deleteStatus",nullable=false)
private Boolean deleteStatus;

@OneToOne(optional=false,fetch = FetchType.LAZY)
@Cascade({CascadeType.SAVE_UPDATE,CascadeType.DELETE})
@PrimaryKeyJoinColumn
private WMSUserInfo userInfo;

@ManyToMany
@Cascade(CascadeType.SAVE_UPDATE)
@JoinTable(
name="wms_user_role_rel",
joinColumns = @JoinColumn(name="userId"),
inverseJoinColumns = @JoinColumn(name="roleId"))
private Set<WMSRole> roles = new HashSet<WMSRole>();

@ManyToOne
@JoinTable(
name="wms_user_org_rel",
joinColumns = @JoinColumn(name="userId"),
inverseJoinColumns = @JoinColumn(name="orgId"))
private Organization organization;

public String getUserName() {
return userName;
}

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

public String getPassWord() {
return passWord;
}

public void setPassWord(String passWord) {
this.passWord = passWord;
}

public String getNickName() {
return nickName;
}

public void setNickName(String nickName) {
this.nickName = nickName;
}

public boolean isValid() {
return isValid;
}

public void setValid(boolean isValid) {
this.isValid = isValid;
}

public WMSUser getCreateUser() {
return createUser;
}

public void setCreateUser(WMSUser createUser) {
this.createUser = createUser;
}

public WMSUserInfo getUserInfo() {
return userInfo;
}

public void setUserInfo(WMSUserInfo userInfo) {
this.userInfo = userInfo;
}

public Set<WMSRole> getRoles() {
return roles;
}

public void setRoles(Set<WMSRole> roles) {
this.roles = roles;
}

public Date getCreateTime() {
return createTime;
}

public void setCreateTime(Date createTime) {
this.createTime = createTime;
}

public Boolean getDeleteStatus() {
return deleteStatus;
}

public void setDeleteStatus(Boolean deleteStatus) {
this.deleteStatus = deleteStatus;
}

public Organization getOrganization() {
return organization;
}

public void setOrganization(Organization organization) {
this.organization = organization;
}


}




有没有大神知道怎么写hql的啊 ,
...全文
159 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtian2020 2017-07-19
  • 打赏
  • 举报
回复
查询所有员工应该是这样: Query query = session.createQuery("from WMSUser where 1=1"); List<WMSUser > list = query.list();

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧