当 table 名称包含 DOT 时,JPA 抛出 "INSERT command denied to user for table 'XXX'"

when table name include a DOT , JPA throw "INSERT command denied to user for table 'XXX'"

我对 JPA 有一个奇怪的问题。我已将数据库中的 table 从 "Users" 重命名为 "App.Users"。并将此注释添加到我的实体 class: @Table(name="App.Users") 然后我得到了这个错误:

INSERT command denied to user 'XXXXX'@'XXXXX' for table 'Users'

我正在使用 MariaDB。

请阅读 MariaDB 文档的第 Identifier names 章。

如果标识符的字符不是 [0-9,a-z,A-Z$_] 范围内的 ANSI 字符且不是 unicode 字符 >= 0x0080FF,则必须在反引号中引用。

未加引号的标识符中的小数点还有一个特殊含义:在您的示例中,它表示 schema/database“App”和 table“Users”。由于用户对数据库应用程序没有权限(如果不存在则事件)发生权限错误。