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版本-&gt;很多Query方法不赞成使用吗? 的全部内容, 来源链接: utcz.com/qa/402867.html

回到顶部