Hibernate - вопрос по маппингу и подчеркиванию в IDE

Использую Hibernate - 5.4.10.Final IDE - IDEA Enterprise.

Конфиг хибера

    <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/db_example</property>
    <property name="connection.username">root</property>
    <property name="connection.password">*****</property>
    <property name="show_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">update</property>

введите сюда описание изображения

Проблема в следующем подчеркивает красным, таблички и их поля в коде.

Но все компилится и работает нормально!!

Все поля и таблицы с аннотациями как и положено. К базе коннект есть. Классы добавлены в конфиг

        Configuration configuration = new Configuration()
            .addAnnotatedClass(DailyReport.class)
            .addAnnotatedClass(Car.class)
            .configure();

введите сюда описание изображения

  1. Если добавляю в hibernate.cfg.xml - маппинг вроде :

    <mapping class="model.DailyReport"/>
    <mapping class="model.Car"/>
    

подчеркивания исчезают.

Почему так происходит и как убрать эти гребанные подчеркивания ( без дублирования маппинга в XML конфиге ) якобы он ("Cant resolve symbol car")

  1. Почему у меня не компилится и возникают ошибки при обращении к таблицам в базе, если я убираю аннотейтед класс ( new AnnotatedConfig - вообще у меня не видит ) и оставляю только маппинг в XML.

        Configuration configuration = new Configuration()
            .configure();
    

И да, когда я добавляю маппинг, он в персистансе отображает имена таблиц почему-то не правильно, не так как указано в аннотации к POJO классам.

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Antonio112009

Данный ответ не является ответом к вопросу, а лишь помощь с опитимизацией кода.

Если вы хотите вернуть типизированный список, то лучше это сделать с использованием TypedQuery:

    //Get All Cars
    public List<Car> getAllCars(){

        List<Car> list = new ArrayList<>();

        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();

            TypedQuery<Car> query = session.createQuery("from Car", Car.class);
            list = query.getResultList();

            session.clear();
            session.close();
        } catch (Exception e) {
            if (transaction != null) {
                transaction.rollback();
            }
            e.printStackTrace();
        }

        return list;
    }
→ Ссылка
Автор решения: Antonio112009

Добавлять mapping в hibernate.cfg.xml надо, потому что ваша программа не может сама находить сущности, как это возможно при работе со Spring. Добавляя объекты в маппинг, вы говорите программе какие объекты участвуют при отправке данных в базу данных.

→ Ссылка