るぅもも園営業部-多趣味おやぢの動物事情-

アカビタイムジオウム情報メイン。ペット情報、IT技術や料理等いろんなことを書きまくっています。

【IT技術】JPAと速度を両立させるには【Java】

time 2018/05/28

【IT技術】JPAと速度を両立させるには【Java】

sponsored link

なんていうか、めっちゃ相反することを検討している気がする。

JPAは「Java Persistence API」の略であり、簡単にいえば、JavaからDBへのアクセスを簡単にするよ、
という概念であります。

SQLを書かなくてもDBと通信してくれるし、DBとの通信結果を、オブジェクトに勝手にバインドしてくれるという素敵機能。

まぁ、その実、中ではリフレクションとか使っているので、高速処理には向かないという欠点はあります。

ですが、今回、Web側ではSprint Bootを使っており、コモンクラスにDBアクセサが固まっているシステムにおいて
一部処理をバッチに委譲して処理させよう、という要件がありました。

バッチでは数万行処理するため、トランザクションもなるべく制御して、高速化を目指す必要があるのですが……。
JPAは基本的にトランザクションについても考える必要がない仕組みでして、かえってそこに手を突っ込むと
めっちゃこんがらかる、という悪循環に陥ります。

基本的には、 @Transactional アノテーションをつけて……とかいうのが基本かな?と思うのですが
ラムダチックにFunction作って動的バインドしてしまっているので、アノテーションが上手く効かず
となると、transactionManagerを取得して・・・?とかいろいろ検討をしておりますが、

そもそも高速処理をしたいならJPAに任せるっていう考えが間違っているような気がしています。

※NamedQuery等を駆使しする等、しっかりとチューニングすれば高速なんでしょうが、
私みたいなアジャイルというかプロトタイピング法にて開発している研究開発チックな部分においては
なかなか厳しい世の中です。

きっとやりようがあるのでしょうが、フレームワークの壁を壊しながら工事する、みたいなことやらねばならず
チョイとばかし難航しています。

36歳にもなってくると、ちょっとこういう研究開発チックなの辛くなってきましたねぇw

sponsored link

down

コメントする




このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ペット

雑記

未分類

ランキング

amazon

このブログを書いている人

葉月 要

葉月 要

SE歴13年。 Webでもクラサバでもなんでもござれのオールラウンダー。 Java、C#、ExcelVBA等の言語から、DynamicsCRM、Salesfroceなども手掛ける。 洞察、検証から最適解を探そうとする合理主義的かつ動物好き 文章作成や技術相談などがありましたらクラウドワークス等でお受けいたします。 連絡はこちらまでkaname_connect☆rulumomo.ddo.jp



sponsored link

検索