hibernate mysql выводит некорректный список

 
 
 
Сообщения:41
У меня главный класс, который всем рулит:
public class Runner {

    private static SessionFactory factory;

    public static void main(String[] args) {

        getList().stream().map(p -> p.toString())
        .forEach(System.out::println);

    }
}

Метод:
public static List getList () {

        Session session = factory.openSession();
        Transaction transaction = session.beginTransaction();

        List<Pill> pills = session.createSQLQuery("select * from pills").list();
        transaction.commit();
        session.close();

        return pills;

    }

Он достает из базы списочек и выводит содержимое в консоль (по идее). НО

[Ljava.lang.Object;@f446158 // Вот это!!


Как бы сделать так, чтобы выводились полезные данные? Метод toString() в классе Pill переопределен
Без стрима так же пыталась, всевозможно приводить в разных кусках кода к типу List<Pills> - тоже
 
 
Сообщения:3
Надо думаю возвращать в метод не просто List,a List<Pill>
 
 
Сообщения:41
Kardibus:
Надо думаю возвращать в метод не просто List,a List<Pill>

Я уже так делала)) смотрите мой вопрос в конце
 
 
Сообщения:10007
Этот запрос не вернет объекты, он вернет массив полей. Объявляй-необъявляй женерик List<Pill> - он все равно существует только в compile time, а во время выполнения эта инфа стирается и Java не проверяет что на самом деле там не те объекты. Это легко заметить если научиться дабежить - ставим breakpoint на нужной строке, дебажим и смотрим что же там в списке. А там массив.

Для того чтоб Хиб вернул объекты нужно чтоб это был не SQL, a HQL запрос (и методы не те вызывать надо): "from Pill"
Изменен:15 окт 2020 10:07
 
 
Сообщения:41
Староверъ:
Этот запрос не вернет объекты, он вернет массив полей. Объявляй-необъявляй женерик List<Pill> - он все равно существует только в compile time, а во время выполнения эта инфа стирается и Java не проверяет что на самом деле там не те объекты. Это легко заметить если научиться дабежить - ставим breakpoint на нужной строке, дебажим и смотрим что же там в списке. А там массив.

Для того чтоб Хиб вернул объекты нужно чтоб это был не SQL, a HQL запрос (и методы не те вызывать надо): "from Pill"

Оуу, спасибо) блин, можно было правда догадаться,очень благодарна!
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет