skillup

技術ブログ

Database Java

JPAでのデータベースとの同期

投稿日:2015年8月9日 更新日:

このブログでも何回か書いてきたJPAですが、新規レコードをインサートさせた際IDを取得し、そのIDをもとに何らかのキーを作る、そういう処理があったので紹介させていただきます。

何回か書いてますが、JPAのpersistはinsertではなく、あくまでそれ以降エラーがなければglassfishがコミットし、最終的にインサートされます。

なのでpersist直後にはIDが取得されません。

そのため冒頭にあげたような処理を行うことはできません。

いろいろ調べましたが、flushというメソッドを使うと、データベースと同期することができ、IDを取得できます。まだコミットはしていないので、エラーが発生したらロールバックします。

下記コードが処理の内容です。

リンクは下記を参考にしてます。もっとしっかりと理解しないとまずいなー

Glassfish JPA

-Database, Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

入出力操作

Javaの出力処理について書きます。 下記リンクが非常に詳しかったので、これをもとにまとめてみたんですが、咀嚼できてないっぽい・・・・ もう1~2度修正がひつようかも。 Contents1 Javaの …

no image

DBの基礎 テーブルとは

CSSを学習したあとはデータベースの学習などを。 参考図書:「達人に学ぶDB設計指南書」基本的にはこれを読んでいきます。が、現状よくわからないところは飛ばしていきます・・・ Contents1 テーブ …

no image

スコープアノテーションとCDIについて

JavaEEで個人的に鬼門がCDIとスコープだと思っています。 ここが少しずつ分かりかけてきたんでメモします。 まずJavaEEでは変数の生存期間をアノテーションで定義します。 これがなかなか分かりに …

no image

JavaでのPDF出力

JavaでのPDFファイルをダウンロードしたいと要望があって社内アプリの開発をしていましたが、思った以上にバグがでてかなり長期戦になりました。 やりたいことは ボタンを押すとファイルのダウンロードが始 …

no image

Listの簡便な書き方

Listに要素を加えるときに、スタンダードな書き方は

になりますが、もっとほかにもいろいろな書きがあります。 特にオブジェクトの追加の …

アーカイブ