Hibernate выдает странную ошибку: Класс не отображается

это ошибка

org.hibernate.hql.ast.QuerySyntaxException: Payment is not mapped [select p from Payment p]

Я не Чтобы понять, почему возникает эта ошибка, класс должен быть отображен, как я вам вкратце покажу. У меня очень простая конфигурация, вроде этой: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/ch01.html

Я попытался добавить определение сопоставления в hibernate.cfg.xml, и я также попытался добавить его программно. Ни один из них не работал. Может ли кто-нибудь сказать мне, что мне здесь не хватает? (это не первый раз, когда я создаю проект Hibernate)

это hibernate.cfg.xml




  
    org.hibernate.dialect.MySQLDialect
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/paymentsdatabase
    xxx
    xxx
    true
    thread

    create

    
  

соединение с базой данных работает нормально, я тестировал, что

это статический инициализатор в моем HibernateUtil

static {
    try {

        // Create the SessionFactory from standard (hibernate.cfg.xml) 
        // config file.
        sessionFactory = new AnnotationConfiguration()
            .addPackage("com.lsyh.swati.zk.model")
            .addAnnotatedClass(Payment.class)
            .configure().buildSessionFactory();
    } catch (Throwable ex) {
        // Log the exception. 
        System.err.println("Initial SessionFactory creation failed. " + ex);
        throw new ExceptionInInitializerError(ex);
    }
}

и здесь я использую sessionFactory в классе PaymentIODb:

public static List readDataFromDb(){
        StatelessSession session = StoreHibernateUtil.getSessionFactory().openStatelessSession();
        Query query = session.createQuery("select p from Payment p");
        List payments = query.list();
        session.close();
        return payments;
}    

это трассировка стека

org.hibernate.hql.ast.QuerySyntaxException: Payment is not mapped [select p from Payment p]
    at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
    at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
    at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
    at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
    at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
    at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
    at com.lsyh.swati.zk.controller.PaymentIODb.readDataFromDb(PaymentIODb.java:35)
    at com.lsyh.swati.zk.controller.PaymentIODb.resolveVariable(PaymentIODb.java:20

27
задан Jens Schauder 16 May 2018 в 05:21
поделиться