IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: ClassName 未映射

IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: ClassName is not mapped

我在 Spring MVC 中收到此错误:

Request processing failed; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: SampleClass is not mapped sampleClass.

下面是我的 DaoClass 函数,我将 SampleClass 映射到 SampleClass table

@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;
}

甚至 table 名称和列名都与 sampleClass 属性.

相同

在示例class中,我使用注释进行映射:

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

我经历了很多解决方案,但没有解决我的问题。 是否存在与依赖版本相关的问题? 还有一件事 @Entity 显示已弃用任何其他替代方案?

One more thing @Entity is showing deprecated any other alternative?

您似乎使用 org.hibernate.annotations.Entity 而不是 javax.persistence.Entity

因此,以这种方式更正您的映射:

import javax.persistence.Entity;

@Entity
public class SampleClass {

}