gpt4 book ai didi

java - "Is not mapped"与 Hibernate 的期望

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:14 25 4
gpt4 key购买 nike

我创建了一个简单的 Hibernate 测试应用程序,但由于某种原因,ReciepeModel 未映射。我已在 hibernate.cfg.xml 文件中定义了它。我已检查是否有正确的导入 import javax.persistence.*;

这是尝试运行程序时的异常:

org.hibernate.hql.internal.ast.QuerySyntaxException: ReciepeModel is not mapped [FROM ReciepeModel WHERE idreciepe = :id]
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:218)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:76)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:302)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:240)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1907)
at com.calicode.connection.Connector$1.process(Connector.java:16)
at com.calicode.connection.ConnectionTemplate.createSession(ConnectionTemplate.java:24)
at com.calicode.connection.Connector.connect(Connector.java:20)
at com.calicode.connection.Connector.main(Connector.java:9)

我创建了以下 ReciepeModel,它映射到配置文件中:

package com.calicode.model;

import javax.persistence.*;

@Entity
@Table(name = "reciepe")
public class ReciepeModel {

@Id
@GeneratedValue
@Column(name = "idreciepe")
private int idreciepe;
}

这是映射了 ReciepeModel 的 hibernate.cfg.xml:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.id.new_generator_mappings">false</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<mapping class="com.calicode.model.ReciepeModel"/>
</session-factory>
</hibernate-configuration>

这是一个简单的测试:

public static void main(String[] args) {
connect();
}

public static void connect() {
new ConnectionTemplate() {
@Override
public void process(Session session) {
Query query = session.createQuery("FROM ReciepeModel WHERE idreciepe = :id");
query.setParameter("id", 1);
}
}.createSession();
}

我已经想不出为什么这不起作用了。在浏览了同一主题的其他问题后,我觉得这里有更大的问题。

编辑 1 将包名称添加到 ReciepeModel 代码段

最佳答案

通过将 Gradle 依赖项 'org.hibernate:hibernate-core:5.1.0.Final' 更改为 'org.springframework.boot:spring-boot-starter-data-jpa:1.3.3.RELEASE' 解决了该问题。

这很好,因为我将在这个项目中使用 Spring Boot。

关于java - "Is not mapped"与 Hibernate 的期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37093649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com