home wiki.fukuchiharuki.me
Menu

キーワード

  • JPA
  • Spring Boot
  • Kotlin

したいこと

ひとまず最小で基本的な関連と永続化処理を実装したい。

エンティティ

モデル

@Entity
@Table
class Foo(
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  var id: Long = -1,

  var name: String = "", 

  var status: StatusType = StatusType.TEMPORARY_REGISTRATION
)

エンティティにはIDが必要

JPAのエンティティはID(プライマリキー)を持つ、のが基本。

detached entity passed to persist spring jpa

永続化処理

val entity = Foo(name = "foo", status = StatusType.TEMPORARY_REGISTRATION)
entityManager.persist(entity)

Kotlinで実装する場合デフォルト値の定義が必要

Kotlinでエンティティを実装する場合、デフォルト値を定義しておく必要がある。デフォルト値を定義しておかないと、エンティティ永続化時にエラーが発生する。永続化時に値があるかどうかではないことに注意。

1対多(集約等)の関係

TBC

多対1(イベント等)の関係

TBC

1対1(カーソル等)の関係

TBC

参考