Hibernate未正确Map

4dbbbstv  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(146)

上下文:

我正在尝试在我的数据库和我的应用程序之间建立连接,该应用程序运行在k8s上,全部运行在DigitalOcean上。我的数据库正在接受所有传入连接,以便立即进行测试。这使我能够让应用程序在本地运行,但仍通过Hibernate连接到我的远程数据库。数据库与实体一样称为"用户"。而不是"users "或" Users ",我没有像在我发现的问题中那样为表或实体使用注解。

问题:

本地运行完全没有问题--它运行查询没有任何问题,但是当我的k8s pod应用程序试图运行查询时,出现了下面的错误:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [SELECT c from User c WHERE c.email = :email]
    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:220)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144)
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113)
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73)
    at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162)
    at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:622)
    at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:734)
    ... 26 common frames omitted
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: User 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:77)

当然,它并不局限于实体"User"及其所有表,这只是一个示例,因为它是登录用例中的第一个查询。

我的User类中的一小段代码:

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "system-uuid")
    @Column(name = "id", nullable = false)
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    private String id;
    private String firstname;
    private String lastname;
    private String organizationID;
    private String email;
    private String password;
    private boolean isActivated;
    ...

我的问题:
为什么它在本地工作而不是在我的pod中?对我来说,它似乎与连接没有任何关系,或者我不正确?
先谢了,希望很快能得到答复。
问候你亚历克斯

nkkqxpd9

nkkqxpd91#

我不知道你是如何打包/部署你的应用程序的,但是这个错误意味着Hibernate不知道实体类。可能是你丢失了一个persistence.xml。可能是你部署的JAR/WAR文件不包含实体类。

相关问题