0

私は新しいアプリケーションを開発しています。私の出発点は Spring Roo だったので、Spring Roo と同じアーキテクチャに従っています。

JPA 実装として eclipselink を選択し、データベースとして MYSQL を選択しました。

アプリケーションのコアは、特定の Web サイトから HTML を収集し、そこからデータを抽出して HTML を処理する Web クローラーです。この抽出されたデータは、JPA エンティティで永続化されます。

私の開発環境ではすべて正常に動作し、クローラーは非常に高速に動作し、すべてのデータがデータベースに保存されます。

しかし、Amazon ec2 (Elastic Beanstalk を使用) 上で実行され、リモートの mysql サーバーに接続するテスト環境にデプロイすると (テスト用の Amazon RDS は非常に高価であるため、安価なホストゲーター プランです)、実際にはデータがめちゃくちゃになります。すべてのデータではなく、1 つの特定のエンティティの 1 つの特定のフィールドで、データがすべて台無しになります。

最も面白いのは、persist() メソッドを呼び出し、同じエンティティを使用して通知メールを送信した直後で、メール データは正しいのですが、eclipselink (またはコネクタ) がデータベースにデータを送信すると、奇妙なものが保存されることです。次のような値:

456d207472c3a26e7369746f207061726120554e49444144452044452054524154414d454e544f20494e5445524e4143494f4e2e2e2e

1 つの値が正しく保持され、次に 1 つの値が正しく保持されません。

誰かが以前に似たようなことを経験したことがありますか?

4

2 に答える 2

2

ドライバーとデータベースの間に不一致があった場合にも、同様の問題が発生しました。jdbcドライバーの正確なバージョンがデータベースの正確なバージョンと一致することを確認してください。

于 2012-09-20T21:52:40.767 に答える
0

このエラーは自分で見つけました。エンコードの問題に関連していました。

私は、アプリケーションで使用していた種類のエンコーディングとデータベースの種類をサポートしていない phpmyadmin を使用してこのデータを閲覧していました。

別のクライアントでデータを確認したところ、正しく表示されていました。

奇妙なことに、phpmyadmin でも、特殊文字を含む行だけが間違って表示されていました。

于 2012-09-21T01:38:39.357 に答える