1. ホーム
  2. java

[解決済み] JPAエンティティがSerializableインターフェイスを実装する必要があるのはいつ、なぜですか?

2022-04-20 14:43:53

質問

質問はタイトルにあります。以下は、私の考えや発見を述べただけです。

非常にシンプルなドメインモデル (リレーションを持たない3つのテーブル) を作成したとき、すべてのエンティティが Serializable インターフェイスを使用します。

しかし、ドメインモデルが複雑になってくると RuntimeException を実装していないエンティティがあるとのことです。 Serializable .

JPAの実装としてHibernateを使っているのですが、どうなんでしょう。

  1. ベンダー固有の要件/動作なのでしょうか?
  2. シリアライズ可能なエンティティはどうなりますか?保存するときと転送するとき、どちらでシリアライズすべきでしょうか?
  3. どのような場合に、エンティティをシリアライズする必要があるのでしょうか?

どのように解決するのですか?

これは通常、HQLとネイティブSQLクエリを混在させた場合に発生します。HQLでは、Hibernateは渡された型をDBが理解するものにマッピングします。ネイティブSQLを実行する場合、マッピングを自分で行う必要があります。そうしない場合、デフォルトのマッピングは、パラメータをシリアライズしてデータベースに送信します(データベースがそれを理解することを期待して)。