はじめに プロジェクトをKotlin+Springでリライトしようと思い、JPAにおける値オブジェクトの表現について考えてみました。 まだKotlin歴が浅く、コード上おかしなところがあるかもしれませんがご容赦下さいm(_ _)m JPAと値オブジェクト JPAで値オブジェクトを永続化する方法は、おそらく大きく分けると以下のいずれかになると思います。 EmbeddableとAttributeOverrideを使う AttributeConverterを使う ElementCollectionを使う Entityと代理識別子を使う 1. EmbeddableとAttributeOverrideを使う 一つ目の方法は、@Embeddableと@AttributeOverrideを使って値クラスを埋め込む方法です。 JPAでIdクラスを値オブジェクト化して主キーに使う方法はおそらくこの方法のみで