使用eclipselink和mysql持久化数据时的奇怪行为

时间:2012-06-12 23:37:51

标签: mysql spring jpa eclipselink spring-roo

我正在开发一个新的应用程序,我的起点是Spring Roo,所以我采用与它相同的架构。

我选择了eclipselink作为我的JPA实现,MYSQL作为我的数据库。

该应用程序的核心是一个webcrawler,它从特定网站收集HTML并处理从中提取一些数据的HTML,这些提取的数据与JPA实体一起保存。

在我的开发环境中一切正常,爬虫运行速度非常快,所有数据都存储在数据库中。

但是,当部署在我的测试环境中时,它运行在amazon ec2(使用弹性beanstalk)之上并连接到远程mysql服务器(一个廉价的hostgator计划作为亚马逊RDS进行测试非常昂贵),数据变得混乱实际上不是所有的数据,一个特定实体的一个特定领域得到的数据都搞砸了。

最有趣的是我调用了persist()方法并在使用相同的实体发送通知电子邮件之后,电子邮件数据是正确的,但是当eclipselink(或连接器)发送数据时,请执行数据库存储一些奇怪的值,如:

  

456d207472c3a26e7369746f207061726120554e49444144452044452054524154414d454e544f20494e5445524e4143494f4e2e2e2e

它正确地保持1个值然后1个错误。

以前有没有人经历过类似的事情?

2 个答案:

答案 0 :(得分:2)

当我在驱动程序和数据库之间出现不匹配时,我遇到了类似的问题。检查jdbc驱动程序的确切版本是否与数据库的确切版本匹配。

答案 1 :(得分:0)

我自己发现了这个错误,它与编码问题有关。

我使用phpmyadmin浏览这些数据,它不支持我在我的应用程序中使用的编码类型和数据库类型。

当我使用其他客户端检查数据时,它显示正确。

奇怪的是,即使在phpmyadmin上,只有包含特殊字符的行显示错误