IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: имя класса не сопоставлено

#java #hibernate #spring-mvc #orm #spring-annotations

#java #переход в спящий режим #spring-mvc #orm #весенние аннотации

Вопрос:

Я получаю эту ошибку в Spring MVC:

Ошибка обработки запроса; вложенным исключением является java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: SampleClass не сопоставлен с SampleClass.

Ниже приведена моя DaoClass функция, в которой я сопоставил SampleClass с SampleClass таблицей

 @Autowired
private SessionFactory sessionFactory;

@Transactional
public List<SampleClass> getData()
{
   Session session = sessionFactory.getCurrentSession();
   List <SampleClass> sampleClass = session.createQuery("from SampleClass",SampleClass.class).list();
            
   return sampleClass;
}
 

Даже имя таблицы совпадает, а имя столбца совпадает со свойством SampleClass .

В примере класса я использовал аннотации для сопоставления:

 @Data
@Entity
public class SampleClass {
    
    @Getter
    @Setter
    @Id
    private  int id;
    @Getter
    @Setter
    private String aname;
    
}
 

Я прошел через множество решений, которые ничего не разрешили.
Есть ли какие-либо проблемы, связанные с версиями зависимостей?
Еще одна вещь @Entity показывает устаревшую любую другую альтернативу?

Ответ №1:

Еще одна вещь @Entity показывает устаревшую любую другую альтернативу?

Похоже, вы используете org.hibernate.annotations.Entity вместо javax.persistence.Entity .

Итак, исправьте свое отображение таким образом:

 import javax.persistence.Entity;

@Entity
public class SampleClass {

}
 

Комментарии:

1. это была опечатка! Пожалуйста, рассмотрите мое имя класса как «SampleClass »