[Java][Framework] Spring BootのJPAでDB接続した際のEntityキャッシュのクリア方法

公開日: : Framework, Java , , , , , , ,

[概要]

Spring BootのJPAでDBアクセスした際に、処理を一定量こなすと、Heapが足りなくなってOutOfMemoryでコケる件でハマったので、解決法をメモ。

とはいっても単純でEntityManagerを持ってきて、クリアするだけ。

Hibernate初心者のわたくしにとっては、非常に難関でございました。

具体的には、以下のエラーがでたらの対象法になります。

[エラー内容]

java heap error

[対応]

EntityManagerを取得して、キャッシュをクリアするだけです。
最初は、どこかにメソッドインターフェースがあって、XXXX.getEntityManager()的なもので取得するのかなーと思っていましたが(古い)
案の定そんなものはなく、アノテーションを指定して、DIで取得する文化でした。

public class XxxxxLogic(){

	// EntityManagerをDI
	@PersistenceContext
	EntityManager entityManager;

	public void xxxxEntityCacheClear(){
		// cacheクリア
		entityManager.clear();
	}

・・・・・
}

これだけです。簡単ですねー。
Entityを指定してクリアする方法もネットサーフィン(死語)してたらありましたが、1次キャッシュと2次キャッシュがあるらしく、参照が残ってしまっていて、うまくGC対象にならずOutOfMemoryが直らなかったので、まだわかってません。

わかったら追記しまっす。

スポンサードリンク

関連記事

no image

[Java] 文字列の分割(split)

こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize

記事を読む

no image

[Java][基本] ループ処理(for文)

Javaのループ処理の基本である、for文を解説します。 ●文法 for( [①初期化];

記事を読む

no image

[Java][Jersey] JerseyでRESTfulなJAX-RS Webサービス作成

こんにちは、keiです。 今回はRESTfulなWeb Serviceの作成を行っていきます。

記事を読む

no image

[Java] 日付の計算方法(DateFormat、Date、Calendar)

こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず

記事を読む

no image

[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定

今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説

記事を読む

no image

[Java] テキストファイルの読み込み方法

こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ

記事を読む

no image

[Java][Framework] Play Framework入門

今回は、Javaの比較的新しいWeb Frameworkである、Play Frameworkを試して

記事を読む

no image

[Java] Javaのインストール(プログラム開発・入門用)

Javaのコードを書きたい!! という目的のためのJavaのインストール方法と、コマンドラインでの

記事を読む

no image

[Java][Servlet] EclipseでのJavaServlet作成

こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse

記事を読む

no image

[Java] クラスとインスタンス

こんにちは。 クラスとインスタンスについて解説します。 インスタンスは「オブジェクト」とも言

記事を読む

スポンサードリンク

Message

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

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2025年6月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
  • 2025年6月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
PAGE TOP ↑