2017-04-26 45 views
-1

我需要提高这方面的工作的代码片段:(不建议使用)会话中使用,以查询审核冬眠

​​

..

public List<? extends PatientSuperClass> getPatients(){ 
     Session session=factory.getCurrentSession(); 
     session.beginTransaction(); 
     Query<Patient> query =session.createQuery("select m from "+ Patient.class.getName() +" m"); 
     List<Patient> patients= query.getResultList(); 
     session.getTransaction().commit(); 
     return patients; 
    } 

,让我这样的情况: enter image description here

+0

不赞成使用的类型或方法的javadoc通常会指向正确的方向。你检查过他们吗? – f1sh

+0

为了扩展f1sh的说法:'org.hibernate.Query'上的JavaDoc(我假设你使用的是)声明:“**弃用**(自5.2开始)。使用 'org.hibernate.query.Query “而不是”。现在你只需要这样做。从那里你可以通过查看文档(例如JavaDoc,用户文档等)来解决其他弃用警告。 – Thomas

回答

0

有无需使用键入的Query<Patient>,您无需为Query指定任何类型,您可以从截图中看到它是已弃用,这意味着他们提供了一种替代方法,并且可以在未来版本的框架中删除此方法。

我想你很困惑javax.persistence.Queryorg.hibernate.Query

您需要使用javax.persistence.Query,因为它有一个getResultList()方法,该方法返回无类型列表作为结果。

列表getResultList()

执行SELECT查询和无类型列表返回查询结果。

注:

注意org.hibernate.Query不再有getResultList()方法,这就是为什么它的弃用。

+0

以前我用过:org.hibernate.Query – Francesco

+0

它解释了这个问题。 –