2017-08-03 4 views
3

私の現在のプロジェクトでは、Hibernate Criteria Queryを持つエンティティを取得する問題に直面しました。私は従業員と仕事のエンティティを持っています。Hibernate - Criteria Queries

タスクエンティティ:

@Entity 
@Table(name="task") 
public class Tasks implements Serializable { 

private static final long serialVersionUID = -7988799579036225137L; 

@ManyToOne 
@JoinColumn(name="employee_id") 
private Employees employees; 

public Employees getEmployees() { 
    return employees; 
} 

****relevant getters & setters****** 

Employeeエンティティ:

@Entity 
@Table(name="employee") 
public class Employees implements Serializable { 

private static final long serialVersionUID = -7988799579036225137L; 

@Id 
@Column(name="employee_id") 
private String empId; 

****relevant getters & setters****** 

私は、フォームからEMPIDを設定し、関連する従業員のために、関連するタスクを表示しようとしています。私はこの制限を基準APIに与えなければならない。私の現在のコードは以下の通りです。私はそれをどうやってできるのだろうと思っています。私に助けてください。前もって感謝します。

ViewAssignedTasksDaoImpl.java

@Repository 
@Transactional 
public class ViewAssignedTasksDaoImpl implements ViewAssignedTasksDao { 

@Autowired 
private HibernateUtilImpl hibernateutilimpl; 

@Resource(name = "sessionFactory") 
protected SessionFactory sessionFactory; 


public List<Tasks> viewassignedTasks(Tasks tasks) { 


    Session session = sessionFactory.openSession(); 

    Employees employees = tasks.getEmployees(); 

    Criteria cr = session.createCriteria(Tasks.class); 
    cr.add(Restrictions.eq("empId", tasks.employees.getEmpId())); 
    List<Tasks> tasksList = cr.list(); 

return tasksList; 

} 
+1

..あなたを助けますか? – sunkuet02

+0

すべての行が制限なく返されます。 – jsb9009

+0

あなたのtasks.empoyees.getEmpId()が正しい値を返すかどうかを確認してログと確認を行うより良い方法 –

答えて

0

希望これは、あなたが直面している問題は何ですか

ArrayList<Tasks> TasksListByEmpId = (ArrayList<Tasks>) this 
         .getSession() 
         .createCriteria(Tasks.class,"task") 
         .setProjection(Projections.projectionList() 
     .add(Projections.property("task.yourproprty_name"), "yourproprty_name") 
     .add(Projections.property("task.yourproprty_name"), "yourproprty_name") 
     .add(Projections.property("task.yourproprty_name"), "yourproprty_name") 
     .add(Projections.property("task.yourproprty_name"), "yourproprty_name")) 
         .add("empId", tasks.employees.getEmpId())) 
         .add(Restrictions.in("task.taskStatus", statusList)) 
         .setResultTransformer(Transformers.aliasToBean(Tasks.class)) 
         .list(); 
関連する問題