最近我开始使用Linux(Ubuntu 9.10)而不是Windows。 我正在与Spring,MYSQL与jpa的Java Web应用程序。 但是,在安装linux之前,我先从数据库里做了一个备份文件,然后安装了linux,安装了MYSQL Query Browser和Administrator工具,并且使用Admin工具恢复了备份文件,然后得到了所有的表,并做了一个简单的select语句其中一个表,并得到正常的结果,一切似乎工作得很好。
有一个USER表,有一个namedQuery被定义为通过userName得到一个用户,问题是当我传递一个正确的userName时,我什么也得不到!
我真的不知道是什么问题! 该应用程序在windows下完美工作!
请,谁能帮我解决这个问题?
先谢谢你。
首先想到的是,MySQL表名在Linux上是区分大小写的,而在Windows上是不区分大小写的。 即这可能在Windows上工作:
SELECT ... FROM User ...
但在Linux上,您需要使用正确的大小写表名称:
SELECT ... FROM USER ...
但没有更多的信息,真的很难说。
在Windows和Linux下有一些设置有不同的默认值,表名的大小写敏感等等。 这可能是一个非指定的设置默认为一个值在Windows上,但另一个在Linux下。
你没事,为我的情况,我发现为什么我不能登录传递用户名! 问题是,当我从备份文件中恢复架构时,所有的表都是用小写名称创建的,例如,USER表是用户,然后..当我启动tomcat时,JPA自动创建所有的@Entity ,因此它为@Entity用户创建了一个User表,结果是我有两个USER表,一个拥有所有数据的用户表和一个空的User表,这是应用程序使用的表! 这就是为什么我无法检索任何数据,因为实际上没有数据可以从表中检索。
解决此问题的解决方法我修改了重命名JPA所期望的所有表的备份文件,以避免在启动应用程序时再次创建它们。
我真的不知道是否有一个更好的解决方案,但它为我这样的工作。
最后,非常感谢您的帮助。