如何使方法一般化

时间:2016-10-19 14:06:49

标签: java generics

我有一个要求,即DAO将收到从STATUS列为TECHERR的表中获取数据的请求。对于这个要求,我编写了像

这样的代码
public void loadTable() {
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<MyDTO> criteriaQuery = criteriaBuilder.createQuery(MyDTO.class);
    Root<MyDTO> dashBoard = criteriaQuery.from(MyDTO.class);

    ParameterExpression<String> p = criteriaBuilder.parameter(String.class);
    criteriaQuery.select(dashBoard).where(criteriaBuilder.equal(dashBoard.get("status"), p));

    TypedQuery<MyDTO> query = entityManager.createQuery(criteriaQuery);
    query.setParameter(p, "TECHERR");

    List<MyDTO> MyDtoList = query.getResultList();
}

现在我已经要求有5个类似的表,我必须做同样的事情。

对此的一个解决方案是,我为每个表创建了5个类似于上面的方法并给它们调用。

但是还有其他更好的方法我可以为不同的DTO重复使用上述方法。例如,使用泛型?

注意 - 请不要关心方法签名和返回类型等其他内容,因为编码正在进行中。

感谢。

0 个答案:

没有答案