質問

エンティティクラス内では、属性として任意のオブジェクトを持つことができ、データベースにエンティティを永続化すると、そのオブジェクト属性も永続的に保持できますか?

役に立ちましたか?

解決

オブジェクトが直列化可能な場合は、それをBLOBとしてシリアル化することができます。しかし、それはあなたがやりたいことではありません

  • オブジェクト
  • を常にシリアル化して逆シリアル化するのは非効率的です。
  • それは非常に壊れやすいでしょう:オブジェクトクラスの変更は、データベース
  • にすでに保存されている以前のバージョンを読むために不可能な(またはあなたが何をしているのか知っていた場合)それを不可能にするでしょう。
  • JavaだけがBLOBの意味がある可能性があります
  • このオブジェクトの照会は
  • に照会できませんでした

だから、基本的には答えはいいえです。JPAエンティティは、そのフィールドが列にマッピングされている埋め込みオブジェクトを持つことも、他のエンティティ(OneToone、OneTomany、ManyToOneまたはManyToMany)との関連付けを持つことができます。

私のアドバイス:最初にデータベースの設計について考えてから、スキーマをJPAエンティティにマッピングします。データベースにどのように持続する方法も考えても、オブジェクトモデルの作成を開始した場合は、非常に遠くに行くことはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top