Hibernate получить список из базы данных

В следующем коде я пытаюсь получить список продуктов, который содержит все продукты в базе данных:

public List<Products> getAllProducts() throws Exception{
    try{
     List<Products> products ;
    org.hibernate.Transaction tx = session.beginTransaction();
    products = session.createSQLQuery("SELECT * FROM Products").list();
    if(products.size() > 0)
    {
        return products;
    }
    return null;  
    }
    catch(Exception e)
    {
        throw e;
    }
}

однако это исключение:

[Ljava.lang.Object; cannot be cast to mediatek.Products 

Ответ 1

List<Products> list = session.createCriteria(Products.class).list();

Это даст вам все записи таблицы продуктов из базы данных

Ответ 2

Ваш ответ не только добавляет приведение, но и переключается с SQL на HQL. Поскольку ваш второй запрос находится в HQL, Hibernate может использовать информацию сопоставления, чтобы узнать, какой класс должен возвращаться. Это предпочтительный способ сделать что-то в Hibernate, но если вам приходилось использовать SQL по какой-то причине, вы могли бы достичь того же:

(List<Products>)session.createSQLQuery("SELECT * FROM Products").addEntity(Products.class).list();

Ответ 3

Забыл ввести запрос. он работает сейчас.

List<Products> products  = (List<Products>) session.createQuery("from Products").list();