【问题标题】:How to write Criteria query?如何编写条件查询?
【发布时间】:2014-03-25 07:33:29
【问题描述】:

我有两个实体,分别称为 EmployeeEntityEmployeeDeparmentEntity。如果我获取员工,我想获取所有处于活动状态的部门。我对这两个实体都使用了双向映射。

员工部门

@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;

}

【问题讨论】:

  • 查看我的编辑:我已经删除了与理解问题无关的不必要的 getter/setter 和导入。我还更正了问题标题中的拼写错误并添加了一个标签。如果您想尽快获得更多帮助,请帮助我们了解您迄今为止尝试过的内容。

标签: java hibernate jpa hibernate-criteria


【解决方案1】:

根据您的情况,我提出了以下标准休眠查询,这可能对您的情况有所帮助。

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(.........);
        }

如果您遇到任何其他问题,请告诉我...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2020-06-19
    • 1970-01-01
    • 2017-10-08
    • 2020-10-17
    • 2021-12-02
    • 2021-06-21
    相关资源
    最近更新 更多