Функция Hibernate COUNT не может найти столбец - PullRequest
0 голосов
/ 30 марта 2020

В настоящее время пытаюсь запустить функцию COUNT в Hibernate, которая просто возвращает количество всех платформ в таблице.

Query<?> intQuery = session.createQuery("select count(platform) from
 UserPlatform");`

Вывод Hibernate в консоли:

Hibernate: select count(userplatfo0_.PLATFORM) as col_0_0_ from OTS_SCHEMA.OTS_USER_PLATFORM_TBL userplatfo0_

Однако я я постоянно сталкиваюсь со следующей ошибкой при запуске кода:

Exception in thread "Thread-9" javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1535)
    at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1574)
    at com.ots.Utilities.getPrimaryUserPlatformFromWrapper(Utilities.java:677)
    at com.ots.Processor$3.run(Processor.java:194)
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
Caused by: java.sql.SQLException: Column not found: col_0_0_

Класс модели Hibernate:

@Repository
@Entity
@Table(name="OTS_USER_PLATFORM_TBL")
@Scope("prototype")
public class UserPlatform {

    @Id
    @Column(name="ID")
    private int id;

    @Column(name="CWSID")
    private String cwsid;

    @Column(name="PLATFORM")
    private String platform;


    @Autowired
    public UserPlatform(String cwsid, String platform) {
        this.cwsid = cwsid;
        this.platform = platform;
    }

    public UserPlatform() {

    }
//getters&setters
}

I подозреваемый Hibernate ищет отображение в col_0_0, но так как col_0_0 не является «реальным» столбцом, для него нет отображения. Как мы решаем эту проблему в Hibernate?

1 Ответ

1 голос
/ 30 марта 2020
  • Ваш класс модели Hibernate отсутствует:
  • Удалить: @Repository
  • Удалить: @ Scope
  • Удалить: @Autowired Constructor
  • Вам нужно показать свой реальный сервисный код, т.е. где вы выполняете запрос.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...