Swapnil722 Ответов: 1

Ошибка: столбец 'идентификатор' не найден при использовании nativequery в спящий режим 5.4.14


Я получаю:
ERROR: column 'id' not found while using session.createNativeQuery() in hibernate 5.4.14


Что я уже пробовал:

try (Session session = sessionFactory.openSession()) {
    var clients = session.createNativeQuery("select c.fullname, c.city from client c where c.id=:id")
            .addEntity("c", Client.class)
            .setParameter("id", id);


и там есть подшивка "идентификатор" в сущности и в а база данных слишком но, не получив:
Caused by: java.sql.SQLException: Column 'id' not found.


Вот класс сущностей:

public class Client  implements java.io.Serializable {    

     private Integer id;
     private Product product;
     private String fullname;
     private String business;
     private String address;


Вот это Client.hbm.xml :

<class name="javafxapplication.pojo.Client" table="client" catalog="clientie" optimistic-lock="version">
    <id name="id" type="java.lang.Integer">
        <column name="id" />
        <generator class="identity" />
    </id>


Вот как таблица настраивается в базе данных https://i.stack.imgur.com/YCC6T.png[^]
Иногда это происходит потому, что если мы импортируем данные из дампа в базу данных, я попытался создать новую таблицу в новой базе данных, но это не решит проблему.


Я использую MySQL 8.0.21 Hibernate 5.4.14 JDK 11.0.8+10
Я не буду использовать Критерии СПД потому что я проверяю производительность с помощью NativeQuery.

F-ES Sitecore

Немного рискованно но все примеры кода которые я видел имеют интервал перед именем param так что может быть сначала попробуем это сделать

выберите c.fullname, c.city из клиента c, где c.id = :id

Swapnil722

Извините, что я пытался, но никаких изменений.

Afzaal Ahmad Zeeshan

Какова структура базы данных? Пожалуйста, обратите внимание, что там есть столбец "id".

Swapnil722

идентификатор также существует в сущности и базе данных. вы можете увидеть на связанной фотографии

Swapnil722

Он выдает ту же ошибку, что и "id", не найденный для другого столбца fullname. Я попробовал очистить проект и повторно запустить, но он говорит, что "id" не найден.

Swapnil722

Я также проверил идентификатор другого объекта, но он давал ту же ошибку.
Поэтому я думаю, что это потому, что я импортировал таблицы из дампа, и это вызывает проблему проблемы. Проверит создание новой таблицы. спасибо

Swapnil722

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

1 Ответов

Рейтинг:
12

Jörgen Andersson

Ваш клиентский класс имеет пять полей, включая одно имя "id"
Но в вашем запросе есть только два поля "полное имя" и "город".

Первый столбец, отсутствующий в вашем запросе, - это "id".
Убедитесь, что класс и запрос совпадают.