ローカルクラスに互換性がありません:ストリームclassdesc serialVersionUID = -6513709415809811854、ローカルクラスseri



Local Class Incompatible



ローカルクラスに互換性がありません:ストリームclassdesc serialVersionUID = -6513709415809811854、ローカルクラスserialVersionUID = -7166464393377422509

今日プロジェクトを更新した後、インターフェイスは互換性のないローカルクラスをスローします:stream classdesc serialVersionUID = -6513709415809811854、local class serialVersionUID = -7166464393377422509例外。関連情報を照会すると、redisがキャッシュを実行しているときにシリアル化が失敗することがわかります。その理由は、同僚がJava Beanにいくつかの新しいプロパティを追加したため、シリアル化が失敗したためです。

2つの解決策があります
1:
データベースにキャッシュをキャッシュします。インターフェイスを正常に更新します
redisを接続してライブラリを選択しますflushdb

二:
JavaBeanのIDのみをシリアル化できます



/** * Serialized id */ private static final long serialVersionUID = 4125096758372084309L

コンパイル後、再パッケージ化してリリースしても問題ありません。

総括する:
どちらの方法でも問題を解決できますが、それぞれに長所と短所があります。

方法1:すばやく便利に解決しますが、キャッシュにデータが多いと、キャッシュのなだれが発生し、データベースへの負荷が急激に増加します。同時に、次に新しいフィールドを追加したときに、この問題は引き続き発生し、症状は治癒しません。この方法のすべてが推奨されるわけではありません



方法2:方法1と比較して、コードを変更し、再コンパイルし、パッケージ化し、サービスを再起動する必要があります。これは面倒ですが、この解決策の後、この問題は今後発生しなくなります。これを最後にきっぱりと。すべての比較でこの方法をお勧めします