我有一个要求,即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重复使用上述方法。例如,使用泛型?
注意 - 请不要关心方法签名和返回类型等其他内容,因为编码正在进行中。
感谢。