powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate @SqlResultSetMapping: ERROR: Column 'id1_1_0_' not found
4 сообщений из 4, страница 1 из 1
Hibernate @SqlResultSetMapping: ERROR: Column 'id1_1_0_' not found
    #39597489
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Создаю сущности User и Name.
Необходимо создать список объектов класса Name с полями lastname, firstname из таблицы users, чтобы потом сохранить эти объекты класса Name в таблицу names.
Для этого создаю @SqlResultSetMapping с именем lastfirstname и делаю createNativeQuery.
Выскакивает ошибка:
авторERROR: Column 'id1_1_0_' not found.
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:149)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1423)
at org.hibernate.query.Query.getResultList(Query.java:146)
at Main.main(Main.java:56)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
at org.hibernate.loader.Loader.doList(Loader.java:2695)
at org.hibernate.loader.Loader.doList(Loader.java:2675)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2507)
at org.hibernate.loader.Loader.list(Loader.java:2502)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:335)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2162)
at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:1016)
at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:152)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1414)
... 2 more
Caused by: java.sql.SQLException: Column 'id1_1_0_' not found.
Как я понимаю, в @SqlResultSetMapping необходимо указать информацию о ключе id класса Name.
Как исправить ошибку?

Main.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import java.util.List;
 
public class Main {
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        EntityManagerFactory entityManagerFactory = SingletonEMF.getSessionFactory();
        EntityManager entityManager = entityManagerFactory.createEntityManager();
 
        try {
            entityManager.getTransaction().begin();
 
            List<Name[]> nameList = entityManager.createNativeQuery("SELECT lastname, firstname FROM users", "lastfirstname")
                    .getResultList();
 
            entityManager.getTransaction().commit();
        } catch (Exception e) {
            if (entityManager.getTransaction() != null)
                entityManager.getTransaction().rollback();
            e.printStackTrace();
        } finally {
            entityManager.close();
            entityManagerFactory.close();
        }
    }
}



User.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
import javax.persistence.*;
 
@Entity(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String lastName;
    private String firstName;
    private String middleName;
}



Name.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
import javax.persistence.*;
 
@Entity(name = "names")
@SqlResultSetMapping(
        name = "lastfirstname",
        entities = {
                @EntityResult(
                        entityClass = Name.class,
                        fields = {
                                @FieldResult(name = "lastName", column = "lastname"),
                                @FieldResult(name = "firstName", column = "firstname")
                        }
                )
        }
)
public class Name {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String lastName;
    private String firstName;
}
...
Рейтинг: 0 / 0
Hibernate @SqlResultSetMapping: ERROR: Column 'id1_1_0_' not found
    #39597496
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Это такая бизнес сущность names? ))
...
Рейтинг: 0 / 0
Hibernate @SqlResultSetMapping: ERROR: Column 'id1_1_0_' not found
    #39597515
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Сущность Names придумал для изучения @SqlResultSetMapping
...
Рейтинг: 0 / 0
Hibernate @SqlResultSetMapping: ERROR: Column 'id1_1_0_' not found
    #39597539
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarPetro123,
Сущность Names придумал для изучения @SqlResultSetMappingи зачем изучать то что никто не применяет и даже потребности не придумать?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate @SqlResultSetMapping: ERROR: Column 'id1_1_0_' not found
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]