ตอนนี้ Hibernate เวอร์ชันใหม่กว่ารองรับQuery<T>อ็อบเจ็กต์ประเภทที่ปลอดภัยแล้วดังนั้นคุณจึงไม่ต้องใช้@SuppressWarningsหรือใช้แฮ็กเพื่อทำให้คำเตือนของคอมไพเลอร์หายไปอีกต่อไป ในAPI เซสชัน , Session.createQueryตอนนี้จะกลับมาเป็นประเภทปลอดภัยQuery<T>วัตถุ คุณสามารถใช้วิธีนี้:
Query<Cat> query = session.createQuery("FROM Cat", Cat.class);
List<Cat> cats = query.list();
คุณยังสามารถใช้เมื่อผลการค้นหาไม่ส่งคืน Cat:
public Integer count() {
Query<Integer> query = sessionFactory.getCurrentSession().createQuery("SELECT COUNT(id) FROM Cat", Integer.class);
return query.getSingleResult();
}
หรือเมื่อทำการเลือกบางส่วน:
public List<Object[]> String getName() {
Query<Object[]> query = sessionFactory.getCurrentSession().createQuery("SELECT id, name FROM Cat", Object[].class);
return query.list();
}