Java 休眠异常:未映射表

Java 休眠异常:未映射表,java,hibernate,postgresql,maven,Java,Hibernate,Postgresql,Maven,我试图用hibernate连接到Postgres,但我得到一个异常,表没有映射。以下是代码: hibernate.cfg.xml <!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <pr

我试图用hibernate连接到Postgres,但我得到一个异常,表没有映射。以下是代码:

hibernate.cfg.xml

    <!DOCTYPE hibernate-configuration SYSTEM
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.username">username</property>
    <property name="hibernate.connection.password">passwrd</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/dbname</property>
    <property name="hibernate.hbm2ddl.auto">create</property>
    <property name="connection.pool_size">1</property>
    <property name="show_sql">true</property>
    <mapping class="backend.hibernate.models.UsersEntity"/>
</session-factory>
pom:


5.0.3.4最终版本
9.4-1200-jdbc4
org.hibernate
休眠实体管理器
${hibernate.version}
org.postgresql
postgresql
${postgresql.version}
朱尼特
朱尼特
3.8.1
测试
错误:

 Exception in thread "main" org.hibernate.hql.internal.ast.QuerySyntaxException: UsersModel is not mapped [select login from UsersModel]
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:298)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1836)
at Fronted.Main.main(Main.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
 Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: UsersModel is not mapped
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:171)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:76)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:321)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3678)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3567)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:708)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:564)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:262)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:190)
... 13 more
线程“main”org.hibernate.hql.internal.ast.QuerySyntaxException中的异常:UsersModel未映射[从UsersModel选择登录] 位于org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79) 位于org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.docomFile(QueryTranslatorImpl.java:218) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142) 在org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:115) 在org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:76) 位于org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150) 位于org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:298) 位于org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236) 位于org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1836) 在Fronted.Main.Main(Main.java:23) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:497) 位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 原因:org.hibernate.hql.internal.ast.QuerySyntaxException:未映射UsersModel 位于org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:171) 位于org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91) 位于org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:76) 位于org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:321) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3678) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3567) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:708) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:564) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:301) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:249) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:262) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.docomFile(QueryTranslatorImpl.java:190) ... 还有13个 主要内容:

公共类主{
公共静态void main(字符串[]args){
配置=新配置().configure();
StandardServiceRegistryBuilder=新的StandardServiceRegistryBuilder()。应用程序设置(配置
.getProperties());
SessionFactory SessionFactory=configuration.buildSessionFactory(builder.build());
Session Session=sessionFactory.openSession();
session.beginTransaction();
List List=session.createQuery(“来自UsersEntity”).List();
session.close();
系统输出打印项次(列表);
}
}
在我的数据库中,有一个名为“Users”的表,其列与UsersEntity注释中的列类似。我认为,映射是正确的,但我仍然得到相同的错误。感谢您的帮助

错误很明显“UsersModel未映射”。这意味着您正试图在查询中使用一个尚未进行任何映射的类

您正在查询
UsersModel
,查询内容如下:

List<UsersModel> list = session.createQuery("select login from UsersModel").list();
您应该执行以下查询:

List<UsersEntity> list = session.createQuery("select login from UsersEntity").list();
// Map from UsersEntity to UsersModel if needed
List List=session.createQuery(“从UsersEntity选择登录”).List();
//如果需要,从UsersEntity映射到UsersModel
错误很明显“UsersModel未映射”。这意味着您正试图在查询中使用一个尚未进行任何映射的类

您正在查询
UsersModel
,查询内容如下:

List<UsersModel> list = session.createQuery("select login from UsersModel").list();
您应该执行以下查询:

List<UsersEntity> list = session.createQuery("select login from UsersEntity").list();
// Map from UsersEntity to UsersModel if needed
List List=session.createQuery(“从UsersEntity选择登录”).List();
//如果需要,从UsersEntity映射到UsersModel

可能在hibernate.cfg.xml中映射了错误的类名

在xml中:

<mapping class="backend.hibernate.models.UsersModel"/>
尝试按以下方式更改您的xml:

<mapping class="backend.hibernate.models.UsersEntity"/>

可能在hibernate.cfg.xml中映射了错误的类名

在xml中:

<mapping class="backend.hibernate.models.UsersModel"/>
尝试按以下方式更改您的xml:

<mapping class="backend.hibernate.models.UsersEntity"/>

使用实体名称作为

UsersEntity
因此,请在hibernate.cfg.xml中从

<mapping class="backend.hibernate.models.UsersModel"/>


主要的变化是:从

List<UsersModel> list = session.createQuery("select login from UsersModel").list();
List List=session.createQuery(“从UsersModel选择登录”).List();

List List=session.createQuery(“从UsersEntity选择登录”).List();

使用实体名称作为

UsersEntity
因此,请在hibernate.cfg.xml中从

<mapping class="backend.hibernate.models.UsersModel"/>


主要的变化是:从

List<UsersModel> list = session.createQuery("select login from UsersModel").list();
List List=session.createQuery(“从UsersModel选择登录”).List();

List List=session.createQuery(“从UsersEntity选择登录”).List();

也可以通过以下方式以编程方式添加:

Configuration configuration = new Configuration();
configuration.configure("hibernate-local-query-test.cfg.xml");
configuration.addAnnotatedClass(ClassName.class);

也可以通过以下方式以编程方式添加:

Configuration configuration = new Configuration();
configuration.configure("hibernate-local-query-test.cfg.xml");
configuration.addAnnotatedClass(ClassName.class);

查询
“从UsersModel选择登录”
仍将引发异常。请将查询更改为
“从UsersEntity选择登录”
。我忘了是什么时候