java - MYSQL在linux平台不返回结果,在windows下

标签 java mysql linux hibernate tomcat

我在 eclipse 中的 tomcat 中将上述代码作为 webapp 运行。

该项目在 windows 平台上运行良好,现在我已将其迁移到 Linux(OpenSuse 12.3),以下代码从 mysql 数据库返回用户。

@Override
public User getUserByLoginID(String userLogin) {
    log.info("getUserByLoginID(String userLogin)");
    User returnUser = null;
    session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(User.class).add(
            Restrictions.eq("userLoginEmail", userLogin));
    if (criteria.list() != null) {
        List<User> users = criteria.list();

        if (users.size() > 1) {
            // Should never happen
            throw new RuntimeException(
                    "Invalid number of users with same login id.");
        }
        if (!users.isEmpty()) {
            returnUser = users.get(0);
        }
    }
    return returnUser;
}

我检查了以下行,users.size(),它在窗口中给出了结果,但在 OpenSuse/Linux 中没有。

我在两台机器上都安装了 mysql。 用户存在于两个数据库中。

我怀疑我可能必须为 mysql 数据库配置一些用户/组配置。 知道吗,我该如何进一步调试、排除故障?

任何帮助将不胜感激。

最佳答案

感谢您的不同意见。 数据库名大小写正确,但表名大小写不同,但问题是当我以用户身份运行应用程序时,日志中没有抛出异常。

我以 root 身份登录并尝试以 root 用户身份运行应用程序,那时我可以在日志中看到异常,这提示我正确的方向。

关于java - MYSQL在linux平台不返回结果,在windows下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23868933/

相关文章:

java - 如何将 sql 日期转换为 Joda 日期时间?

java - 您无法映射不存在的属性 : propertyName=baseName when build using gradle 7. 0

java - 在 JPQL 查询中使用数组

php - 使用 CodeIgniter Active Record 选择行

c# - 在 Windows 上开发但在 Linux 上运行的 ASP.NET 5

python - 致命的 Python 错误和 `BufferedWriter`

java - Grails:用 Hibernate 类替换 GORM

MySql:将每列的所有行的总和显示为末尾的额外行

MySQL 连接表

linux - ARM Linux : bus error on one particular page of valid virtual memory