Hibernate 抛出错误:在 MySQL 数据库中找不到表“USERS”

问题描述 投票:0回答:1

我目前正在为我的应用程序开发登录和注册功能,并且我正在尝试连接到我的 MySQL 数据库。但是,我面临一个问题,即应用程序报告数据库为空,即使我已确认它包含虚拟数据。

详情:

数据库名称:nutzer 表名称:users(不是USERS) 我已按照必要的步骤设置数据库连接并使用 Hibernate 配置 JPA 设置。

错误信息: [Tabelle“USERS”nicht gefunden (diese Datenbank ist leer)]

我尝试过的:

  • 仔细检查表名称并确保将其定义为用户。
  • 使用 MySQL Workbench 验证数据库包含数据。
  • 检查了 JPA 配置是否存在任何潜在问题。

问题:什么可能导致应用程序无法识别用户表中的现有数据?任何有关如何解决此问题的建议将不胜感激!

package de.likeherotozero;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "users", schema = "nutzer")

public class EmissionsData {
    @Id
    private Long id;
    private String country;
    private double value;

    // Getters and Setters
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    public double getValue() {
        return value;
    }
    public void setValue(double value) {
        this.value = value;
    }
}

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="my-persistence-unit">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <class>de.likeherotozero.User</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/nutzer"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="myCorrectPassword is here"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>

java hibernate authentication jsf
1个回答
0
投票

需要注意的是,MySQL 不支持数据库模式划分。因此,在

schema
注释中使用
@Table(name = "users", schema = "nutzer")
参数是没有意义的。这可能是您遇到错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.