Таблица не отображается в HQL-запросе - PullRequest
1 голос
/ 04 мая 2020

Мой класс начинается с:

@Entity
@Table(name = "validate_info", catalog = "company")
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class ValidateInfo implements java.io.Serializable{

И мой HQL-запрос:

        List<ValidateInfo> lResult = null;

        String lHql = " from ValidateInfo vi "
                        + " where vi.document.idDocument in (:documentsList) "
                        + " and vi.idEntityType = :idEntityType";

        Query lQuery = pSession.createQuery(lHql);
        lQuery.setParameterList("documentsList", pDocumentsList);
        lQuery.setParameter("idEntityType", pIdEntityType);
        lResult = lQuery.list();

Я получаю ошибку:

[T0028][SEVER] .web.Control.execute() RunService returns Exception  ValidateInfo is not mapped [ from ValidateInfo vi  where vi.document.idDocument in (:documentsList)  and vi.idEntityType = :idEntityType]
[T0028][SEVER] .web.Control.manageError()  java.util.HashMap cannot be cast to java.util.List

Можете ли вы, ребята, помочь мне ? Я не знаю, почему я получаю ошибку «not Mapped», имя таблицы запросов HQL совпадает с именем класса.

1 Ответ

1 голос
/ 04 мая 2020

Когда вы пишете запрос HQL, вы должны написать полный путь к вашему используемому классу.

Таким образом, вы можете заменить свой код следующим образом:

String lHql = " from " + ValidateInfo.class.getName() + " vi "
+ " where vi.document.idDocument in (:documentsList) "
+ " and vi.idEntityType = :idEntityType";
...