2014-03-25 73 views
0

我有两个实体,分别叫做EmployeeEntityEmployeeDeparmentEntity。如果我要取雇员,我要取所有活跃的部门。我对这两个实体都使用了双向映射。如何编写标准查询?

EmployeeDeparment

@Entity 
public class EmployeeDeparment implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @ManyToOne 
    @JoinColumn(name = "employeeid") 
    private EmployeeEntity employeeentity; 

    @Temporal(javax.persistence.TemporalType.DATE) 
    private Date addeddate; 
    @Temporal(javax.persistence.TemporalType.DATE) 
    private Date modifieddate; 
    @ManyToOne 
    private EmployeeEntity reportingTo; 

    @ManyToOne 
    private DepartmentMaster departmentID; 
    private boolean status; 

} 
+1

见我的编辑:我已删除不必要的getter/setter和进口,到问题的理解不相关的。我还更正了问题标题中的拼写错误,并添加了标签。如果您想尽快获得更多帮助,请帮助我们了解到目前为止您尝试了些什么。 – perissf

回答

0

根据你的情况,我想出了以下标准的Hibernate查询这可能会在你的情况有所帮助。

Criteria criteria = session.createCriteria(EmployeeDeparment.class); 
criteria.add(Expression.eq("status",true)); //all active department 
criteria.add(Expression.eq("employeeentity.id",1234)); //set the employee id 

List lisObj = criteria.list(); 


Iterator it=lisObj .iterator(); 

while(it.hasNext()) 
     { 
      EmployeeDeparment p=(EmployeeDeparment)it.next(); 
      p.get(.........); 
      p.get(.........); 
      p.get(.........); 
     } 

让我知道,如果你面对任何进一步的问题...