Hibernate 5.2版本->很多Query方法不赞成使用吗?
我是hibernate的新手。
我正在尝试获取所有管理员的名字和姓氏列表。
我的以下代码中有两个警告。我已经尝试过在线搜索很多。
1)查询是原始类型。泛型查询的引用应参数化。
2)不建议使用Query类型的方法list()。
public List<Object> loadAllAdmins() { List<Object> allAdmins = new ArrayList<Object>();
try {
HibernateUtil.beginTransaction();
Query q = currentSession.createQuery("SELECT admin.firstName, admin.lastName from AdminBean admin");
allAdmins= q.list();
HibernateUtil.commitTransaction();
} catch (HibernateException ex) {
System.out.println("List<AdminBean> loadAllPersons: HibernateException");
}
return allAdmins;
}
但是我在网上看到了这样的示例代码。我应该如何解决这两个问题?
我只是尝试按照建议使用条件。它还说list()方法不建议使用Criteria
…似乎很多方法都不建议使用Query和Criteria,包括uniqueResult()和其他方法…我建议如何替换它们?
回答:
public List<Admin> getAdmins() { List<Admin> AdminList = new ArrayList<Admin>();
Session session = factory.openSession();
for (Object oneObject : session.createQuery("FROM Admin").getResultList()) {
AdminList.add((Admin)oneObject);
}
session.close();
return AdminList;
}
警告来自“类型推断”。
我有类似的问题。但是,我找到了没有“ SuppressWarnings”的解决方案。
最近,我发现了一种无需类型推断即可编码相同内容的较短方法。
public List<Admin> getAdmins() { Session session = factory.openSession();
TypedQuery<Admin> query = session.createQuery("FROM Admin");
List<Admin> result = query.getResultList();
session.close();
return result;
}
希望能帮助到你。
以上是 Hibernate 5.2版本->很多Query方法不赞成使用吗? 的全部内容, 来源链接: utcz.com/qa/402867.html