【问题标题】:getting data problem with MYSQL under linuxlinux下MYSQL获取数据问题
【发布时间】:2010-03-21 12:56:41
【问题描述】:

最近我开始使用 Linux (Ubuntu 9.10) 而不是 windows。我正在使用 Spring 开发 Java Web 应用程序,使用 jpa 开发 MYSQL。但是,在安装linux之前,我从数据库中做了一个备份文件,然后安装了linux,安装了MYSQL Query Browser和Administrator工具,并使用Admin工具恢复了备份文件,然后得到所有表并从其中一张表并正常获得结果,一切似乎都正常。

有一个 USER 表,并且定义了一个 namedQuery 以通过 userName 获取用户,问题是当我传递一个正确的 userName 时,我仍然一无所获!

我真的不知道是什么问题!该应用程序在 Windows 下运行良好!

请问,谁能帮我解决这个问题?

提前谢谢你。

【问题讨论】:

    标签: mysql linux jpa ubuntu


    【解决方案1】:

    首先想到的是 MySQL 表名在 Linux 上区分大小写,但在 Windows 上不区分大小写。即这可能适用于 Windows:

    SELECT ... FROM User ...
    

    但在 Linux 上,您需要使用正确的表名大小写:

    SELECT ... FROM USER ...
    

    但如果没有更多信息,这真的很难说。

    【讨论】:

    • 我正要补充,请记住,表确实是作为文件存储的,并且可以这样访问。案例确实很重要。 MyTable != mytable 在所有情况下(请原谅双关语)。 +1。
    【解决方案2】:

    有些设置在 Windows 和 Linux 下具有不同的默认值,表名区分大小写等就是其中之一。可能是未指定的设置在 windows 上默认为一个值,但在 linux 下默认为另一个值。

    【讨论】:

      【解决方案3】:

      你很好,就我而言,我发现了为什么我无法通过用户名登录! 问题是,当我从备份文件恢复架构时,所有表都是用小写名称创建的,例如,USER 表将是用户,然后.. 当我启动tomcat时,JPA会自动创建所有@Entity,因此它为@Entity用户创建一个用户表,结果是我有两个用户表,一个包含所有数据的用户表和一个空用户表,这是应用程序使用的表!这就是为什么我无法检索任何数据的原因,因为实际上没有可以从表中检索的数据。

      解决此问题的解决方法我修改了备份文件,按照 JPA 的预期重命名了所有表,以避免在启动应用程序时再次创建它们。

      我真的不知道是否有更好的解决方案,但它对我来说就像这样。

      最后,非常感谢您的帮助。

      【讨论】:

        猜你喜欢
        • 2018-12-07
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 2020-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多