我收到一个错误,如下所示:
java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: DirectAddress 未映射 [select d from DirectAddress d where emailaddress=?]
查询看起来像这样
Query query = session.createQuery("select d from DirectAddress d where emailaddress=?");
我已经为javax设置了一个实体
@Entity
@Table(名称=“用户”)
然后我厌倦了这个查询:
查询 query = session.createQuery("select d from "+ DirectAddress.class.getName() + "d where emailaddress=?");
没有任何运气。
此外,项目未使用 hibernate.cfg.xml
文件。
有什么想法吗?
最佳答案
要使用您创建的实体,请确保将其标记为 @Entity
使用 javax 库。您还需要映射它,以便 hibernate 知道它应该将其链接到您的数据库表。请验证您的实体是否已映射到您的applicationContext.xml
中(适用于 Spring 应用)或persistence.xml
在常见的 hibernate 应用程序中。
映射您的实体
You can map your entities in many ways. The most common methods are:
直接映射到 hibernate.cfg.xml
:
<mapping class="your.packages.to.the.entity.class" />
在 spring applicationContext.xml 的 hibernate 配置中进行设置
有关工作示例,请参阅: How configure hibernate.cfg.xml to applicationContext.xml as dataSource?
通过 Spring 注入(inject)
您提到不使用 hibernate.cfg.xml。您是否通过 spring (在非 Web 应用程序中)注入(inject) hibernate 设置?如果有,请引用Can we configure Hibernate Without hibernate.cfg.xml
如果所有解决方案均不适用,请提供有关您的系统的更多详细信息(网络、桌面、以编程方式设置 hibernate 等),我将使用最合适的解决方案编辑此答案。
干杯!
关于java - org.hibernate.hql.ast.QuerySyntaxException 表未映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659245/