[解決済み] JPA/EJBコードでの「detached entity passed to persist error」(永続化するために渡された離脱した実体)。
2023-08-01 04:07:02
質問
私はこの基本的なJPA/EJBコードを実行しようとしています。
public static void main(String[] args){
UserBean user = new UserBean();
user.setId(1);
user.setUserName("name1");
user.setPassword("passwd1");
em.persist(user);
}
こんなエラーが出ます。
javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.JPA.Database
何かアイデアはありますか?
ネットで検索したところ、出てきた理由は
オブジェクトの作成方法、つまりIDプロパティを明示的に設定した場合に起こりました。IDの割り当てを削除すると直りました。
しかし、私はそれを得ることができませんでした、私はコードが動作するようにするために何を修正する必要がありますか?
どのように解決するのですか?
2つのエンティティがあるとします。
Album
と
Photo
. アルバムは多くの写真を含んでいるので、一対多の関係になっています。
アルバムクラス
@Entity
public class Album {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
Integer albumId;
String albumName;
@OneToMany(targetEntity=Photo.class,mappedBy="album",cascade={CascadeType.ALL},orphanRemoval=true)
Set<Photo> photos = new HashSet<Photo>();
}
写真クラス
@Entity
public class Photo{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
Integer photo_id;
String photoName;
@ManyToOne(targetEntity=Album.class)
@JoinColumn(name="album_id")
Album album;
}
persistやmergeの前にしなければならないことは、それぞれの写真にアルバムリファレンスを設定することです。
Album myAlbum = new Album();
Photo photo1 = new Photo();
Photo photo2 = new Photo();
photo1.setAlbum(myAlbum);
photo2.setAlbum(myAlbum);
以上が、永続化・マージする前に関連するエンティティをアタッチする方法です。
関連
-
[解決済み] PersistentObjectException: JPAとHibernateが投げるpersistに渡されたデタッチド・エンティティー
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
-bash: java: コマンドが見つからない 解決方法
-
配列定数は初期化子でのみ使用可能です。
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
maven レポート エラー 解決不可能な親POM
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
[解決済み] JPA EntityManager。なぜmerge()ではなくpersist()を使うのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
[解決済み] org.hibernate.PersistentObjectException: 永続化するために渡されたデタッチド・エンティティー
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
Java の double データ型における 0.0 と -0.0 の問題
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集