Hibernate - queries against criteria
In my current project, I am facing the problem of getting objects asking for hibernation criteria. I have Employees and Tasks objects.
Task object:
@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******
The essence of the 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******
I am trying to set empId from a form and display the appropriate tasks for the corresponding employee. I have to give this limitation to the API criteria. My current code looks like this. I am wondering how I can do this. please help me. Thanks in advance.
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;
}
+3
source to share
1 answer
Hope this helps you.
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();
0
source to share