Вызывается: org.hibernate.hql.internal.ast.QuerySyntaxException: таблица не является AccountSettings - PullRequest
0 голосов
/ 27 февраля 2019

Я получаю следующую ошибку:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: AccountSettings is not mapped
    at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:169)
    at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91)
    at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:79)
    at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:331)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3695)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3584)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:720)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:576)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:313)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:261)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:272)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192)
    ... 10 more

Process finished with exit code 1

Моя сущность выглядит следующим образом: / Пропущенные геттеры и сеттеры, но они есть /

@Entity
@Table(name="accounts_settings")
public class AccountSettings {

    @Id
    @Column(name="id")
    private Integer id;

    @Column(name="hash")
    private String hash;

    @Column(name="location_visibility_level")
    private String location_visibility_level;

    @Column(name="ip_masking_level")
    private String ip_masking_level;
}

DAO:

открытый класс AccountSettingsDAO {

    public List<AccountSettings> getAccountSettings(){
        try (Session session = HibernateIUtils.getSessionFactory().openSession()) {
            return session.createQuery("SELECT location_visibility_level, ip_masking_level FROM AccountSettings", AccountSettings.class).list();
        }
    }
}

`AccountSettings` is the entity name and `accounts_settings` is the table name.

Я также попытался добавить сопоставление таблицы в hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/DBNAME</property>
        <property name="hibernate.connection.username">USERNAME</property>
        <property name="connection.password">PASSWORD</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="packagesToScan">com.package.name.entity</property>


      <mapping class="com.package.name.entity.AccountSettings"/>

    </session-factory>
</hibernate-configuration>

Я проверил, что имя таблицы и имена столбцовправильно в сущности.Что может быть не так?

Я использую последнюю зависимость Hibernate:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.1.Final</version>
</dependency>

Вот где выдается ошибка:

 public static AccountSettings getAccountSettings(String hash) {
        try {
            AccountSettingsDAO accountSettingsDAO = new AccountSettingsDAO();
            List<com.packagname.AccountSettings> accountSettingsList= accountSettingsDAO.getAccountSettings(); //This is where the exception gets thrown
}catch(HibernateException he){
//we catch the same exception here
}
}

Пробовал понижение до другоговерсии также.Что кажется неправильным?Как мне это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...