質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

476閲覧

OneToMany, ManyToOneのsave方法

sukesukesuke

総合スコア73

Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2022/06/17 05:32

Kotlin

1@Entity 2@Table(name = "team") 3class Team( 4 /** チームネーム */ 5 @Column(name = "team_name") 6 var teamName: String, 7 /** メンバー */ 8 @OneToMany(cascade = [CascadeType.ALL], orphanRemoval = true, fetch = FetchType.LAZY, mappedBy = "monitorRule") 9 var members: MutableSet<Member>? = mutableSetOf(),

Kotlin

1@Entity 2@Table(name = "member") 3class Member( 4 /** メンバー氏名 */ 5 @Column(name = "member_name") 6 var memberName: String, 7 /** チーム */ 8 @ManyToOne(fetch = FetchType.LAZY) 9 @JoinColumn(name = "team_id", referencedColumnName = "id", insertable = true, updatable = true) 10 var team: Team

この時、下記のようにsaveが出来ません。

Kotlin

1 val team = Team("チームネーム1") 2 teamRepository.save(team) 3 4 val member = Member("メンバーネーム1", team) //① 5 6 team.members?.clear() 7 team.members?.add(member) 8 teamRepository.save(team)

EntityManagerを使うなどしてみたのですが、
結局①の箇所でinsertが走ってしまいPK制約違反になるようです。

何か良い方法はありますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問