java - ninjaframework 中的表未映射错误

标签 java mysql hibernate ninjaframework

我正在使用 ninjaframework 来构建一个简单的网络应用程序。

我在 mysql 中有下表:

mysql> desc Event;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| event_id | bigint(20)    | YES  |     | NULL    |       |
| owner_id | bigint(20)    | YES  |     | NULL    |       |
| url1     | varchar(2000) | YES  |     | NULL    |       |
| url2     | varchar(2000) | YES  |     | NULL    |       |
| url3     | varchar(2000) | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+

在 My DAO 中,我有以下代码:

TypedQuery<Event> query= entityManager.createQuery("SELECT x FROM Event x WHERE event_id = 1", Event.class);

这会导致以下错误:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Event is not mapped
    at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
    at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109)
    at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:95)
    at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:331)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3633)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3522)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
    ... 43 more

我确实有一个 Event 类,如下所示:

public class Event {
    private int event_id;
    private int owner_id;
    private String url1;
    private String url2;
    private String url3;
    public Event () {
        event_id = -1;
        owner_id = -1;
        url1 = "";
        url2 = "";
        url3 = "";
    }

    public Event(int event_id, int owner_id, String url1, String url2, String url3) {
        this.event_id = event_id;
        this.owner_id = owner_id;
        this.url1 = url1;
        this.url2 = url2;
        this.url3 = url3;
    }
    public int getEventId() {
        return event_id;
    }
    public void setEventId(int id) {
        this.event_id = id;
    }
    public int getOwnerId() {
        return owner_id;
    }
    public void setOwnerId(int id) {
        this.owner_id = id;
    }
    public String getUrl1() {
        return url1;
    }
    public void setUrl1(String url) {
        this.url1 = url;
    }

    public String getUrl2() {
        return url2;
    }
    public void setUrl2(String url) {
        this.url2 = url;
    }

    public String getUrl3() {
        return url3;
    }
    public void setUrl3(String url) {
        this.url3 = url;
    }

    @Override
    public String toString() {
        return getEventId() + ":" + getUrl1() + ":" + getUrl2() + ":" + getUrl3();
    }
    };

为什么我会收到此错误? stackoverflow 上的大多数线程建议我应该修改 hibernate 配置。但是,我没有任何 hibernate 配置文件,因为 ninja 不需要它。

最佳答案

能否在Event类前添加@Entity(name = "Event")并导入javax.persistence.Entity;

@Entity(name = "Event")
public class Event {
    private int event_id;
    private int owner_id;
    private String url1;
    private String url2;
    private String url3;
    public Event () {
        event_id = -1;
        owner_id = -1;
        url1 = "";
        url2 = "";
        url3 = "";
    }

关于java - ninjaframework 中的表未映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326964/

相关文章:

php - 在 php 中列出/或其他数组的数组

java - 配置 c3p0 在连接断开时关闭 Hibernate session

java - 线程 "main"java.lang.NoClassDefFoundError : HelloWorld 中的异常

java - 为什么Java没有文件副本?

java - 将 4 个 JLabel 放在 JFrame 的角上

mysql - 需要帮助从 MySQL 填充数据网格

javascript - knex.js - 迁移最新的 'Already Up To Date'

java - 验证 JAX-RS 中 PUT、POST 方法的空主体请求

java - JPA/hibernate : code based validation of jpa queries

java - @GenericGenerator(name = "generator", strategy = "foreign") 到标准 JPA 2