[解決済み] Spring MVC + Hibernate: ロードするためのidが必要
2022-02-24 12:51:36
質問
このような初歩的な質問で申し訳ないのですが、よろしくお願いします。Hibernates session.merge()メソッドで既存のレコードを編集しようとしているのですが、以下のエラーが発生しました。
java.lang.IllegalArgumentException: id to load is required for loading
これは私のオブジェクトです。
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "TITLE_ID", unique = true, nullable = false)
private Integer titleId;
@NotNull
@NotBlank
@Column(name = "TITLE_DESCRIPTION", nullable = false, length = 10)
private String titleDescription;
// default constructor, getters & setters
サービスレイヤのメソッドです。
public void edit(Title title) {
logger.debug("Editing existing title");
// Retrieve session from Hibernate
Session session = sessionFactory.getCurrentSession();
// Retrieve existing title via id
Title existingTitle = (Title) session.get(Title.class, title.getTitleId());
// Assign updated values to this title
existingTitle.setTitleDescription(title.getTitleDescription());
// Save updates
session.merge(existingTitle);
}
コントローラのPOSTメソッドです。
@RequestMapping(value="/edit", method = RequestMethod.POST)
public String postEditTitle(@Valid @ModelAttribute("titleAttribute") Title title,
BindingResult result) {
logger.debug("Received request to edit title");
if (result.hasErrors()) {
return "editTitle";
}
else {
titleService.edit(title);
return "redirect:/essays/main/title";
}
}
何が足りないのでしょうか?何かお手伝いいただけると助かります。
解決方法は?
問題はHibernateにあるのではありません。
title.getTitleId()
に渡すと、NULLになります。
session.get()
それは、あなたのウェブサービスやアプリケーションの問題です。
- あなたのGETはモデルオブジェクトのidを提供していないかもしれません。
- クライアントコード(フォーム、クライアントアプリ、ajax コールなど)が、GET と POST の間で ID を保持しない可能性があります。
- POST でモデルオブジェクトに ID が提供されていない可能性があります。
Web、Rest、WSセッションにまたがる属性の保持に問題がある場合は、ここで詳細を説明するか、新しい質問をすることができます。
関連
-
[解決済み】Hibernateの問題 - "マッピングされていないクラスをターゲットにした@OneToManyまたは@ManyToManyの使用"
-
[解決済み] Spring Boot spring.datasource.schema VS spring.jpa.properties.hibernate.default_schema
-
[解決済み] Spring HibernateのDataIntegrityViolationExceptionを解決するにはどうすればよいですか?
-
問題解決:ロール例外のコレクションを遅延して初期化することに失敗しました。
-
C3P0 (com.mchange.v2.c3p0.ComboPooledDataSource) の詳細設定手順
-
トランザクションのためにHibernateセッションを開くことができず、データベース接続タイムアウトの解決法
-
[解決済み] Spring MVCの@ResponseBodyメソッドがStringを返すときにHTTP 400エラーで応答するにはどうすればよいですか?
-
[解決済み] Spring MVCの@ModelAttributeとは何ですか?
-
hibernate exception "Found shared references to a collection" (Reprint)
-
[解決済み】Spring MVC:複雑なオブジェクトをGET @RequestParamにする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Hibernateの問題 - "マッピングされていないクラスをターゲットにした@OneToManyまたは@ManyToManyの使用"
-
[解決済み] Another エンティティのマッピングでカラムが繰り返されるエラー
-
[解決済み] ConfigurationException: プロジェクトのルート・フォルダに cfg.xml リソース [hibernate.cfg.xml] が見つかりませんでした。
-
[解決済み] Hibernate関数Restrictions.allEq(Map<String、Object>)は、どのようにNULL値を処理しますか?
-
PersistentObjectException: 永続化例外に渡された離脱したエンティティ
-
Hibernate Newbie FAQ org.hibernate.service.spi.ServiceException: 要求されたサービスを作成できません
-
問題解決:ロール例外のコレクションを遅延して初期化することに失敗しました。
-
C3P0 (com.mchange.v2.c3p0.ComboPooledDataSource) の詳細設定手順
-
[解決済み] Spring MVC + Hibernate: ロードするためのidが必要
-
error:Found shared references to a collection: