Никогда не пытайтесь преобразовать класс сущности из одной сущности в другую, поскольку каждая сущность представляет собой таблицу.
Однако Hibernate предоставляет средство для возврата POJO2
в качестве объекта из столбцов, выбранных с использованием Hibernate Transformers
класс.В вашем случае вам нужно написать пользовательский POJO2
с установщиком-получателем столбцов, которые вы возвращаете.Обратите внимание, что важно, чтобы переменные были названы точно так же, как столбцы псевдонимов.
public static List<ClaimTask> getDetailsfromTask(){
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
List<ClaimTask> list = new ArrayList<ClaimTask>();
try {
tx = session.beginTransaction();
Criteria cr = session.createCriteria(Task.class);
cr.setProjection(Projections.projectionList()
.add......;//Pick all the columns you need from Task
cr.setResultTransformer(Transformers.aliasToBean(ClaimTask.class));
list = (List<ClaimTask>) cr.list();
}catch (Exception asd) {
System.out.println(asd.getMessage());
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
return list;
}
Обратите внимание, что свойства в ClaimTask
должны называться так же, как псевдонимы столбцов, которые вы извлекаете из Task
.Также убедитесь, что ClaimTask
это просто getter
setter
класс, а не класс сущности.