我正在开发一个新的应用程序,我的起点是Spring Roo,所以我遵循与它相同的架构。
我选择了eclipselink作为我的JPA实现,选择MYSQL作为我的数据库。
该应用程序的核心是一个网络爬虫,它从特定网站收集 HTML 并处理从中提取一些数据的 HTML,这些提取的数据与 JPA 实体一起持久化。
在我的开发环境中一切正常,爬虫运行速度非常快,所有数据都存储在数据库中。
但是,当部署在我的测试环境中时,该环境运行在 amazon ec2(使用 elastic beanstalk)之上并连接到远程 mysql 服务器(一个便宜的 hostgator 计划,因为用于测试的 amazon RDS 非常昂贵),数据会变得混乱,实际上不是所有数据,一个特定实体的一个特定字段得到它的数据都搞砸了。
最有趣的是,我调用 persist() 方法并在使用相同的实体发送通知电子邮件之后,电子邮件数据是正确的,但是当 eclipselink(或连接器)发送数据时,它会存储一些奇怪的值,例如:
456d207472c3a26e7369746f207061726120554e49444144452044452054524154414d454e544f20494e5445524e4143494f4e2e2e2e
它正确保留 1 个值,然后保持 1 个错误。
以前有没有人经历过类似的事情?
驱动程序和数据库之间不匹配时,我遇到了类似的问题。检查 jdbc 驱动程序的确切版本是否与数据库的确切版本匹配。
我自己发现了这个错误,它与编码问题有关。
我正在使用phpmyadmin浏览此数据,它不支持我在应用程序中使用的编码和数据库类型。
当我使用其他客户端检查数据时,它显示正确。
奇怪的是,即使在phpmyadmin上,也只有包含特殊字符的行显示错误