少し前に検証したものだが、改めて整理。 テーブルAとテーブルBを結合した結果を取得したい場合に、普通にSpring DataのRepositoryを作って@Query のメソッドを定義してもうまくいかない。 例えば以下のようなクエリは表現できない。
やりたいこと(要件) DBの社員表(emp)から、社員名(ename)のイニシャルでグループ化して人数をカウントする。 イニシャルと人数の両方を結果に含める。 ★2014/12/21追記 追加調査しました。 続・JPQLでハマった話 - Java EE 事始め! SQLでやってみた DBはPostgreSQLでやります。 これは正しく実行でき、上記の要件を満たすSQLです。 select substr(ename,1,1),count(*) from emp group by substr(ename,1,1) 以下、区別のために、SQLは小文字、JPQLは大文字で書きます。 EclipseLinkでやってみた 環境設定はこちら↓ NetBeansとMavenでJPAプロジェクトの作成~エンティティ自動生成まで - Java EE 事始め! JPQLの実行確認ツールについてはこちら↓ Ne
OutOfMemoryErrorの主な要因例として、DBMSからデータを取得しすぎがあります。 LASYフェッチによるN + 1 問題を回避するために、結合先テーブルの要素を一気に持ってくるJOIN FETCHを使ったところ、引き換えにJavaヒープ使用量が多くなるのはよくあるケースです。 以下のような、1つのIssueに対して複数のIssueAttributeを持つ1対多関連のエンティティの操作を例に、OutOfMemoryErrorを少しでも避ける方法を考えてみます。 @Entity public class Issue implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue private int issueId; private String tit
Spring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA-based (Java Persistence API) repositories. It makes it easier to build Spring-powered applications that use data access technologies. Implementing a data access layer for an application can be quite cumbersome. Too much boilerplate code has to be written to execute the simplest queries. Add things like pa
Spring Data JPAには、Repositoryインターフェースに宣言されたメソッドを、その名前からクエリを生成して自動的に生成してくれるお便利機能があります。どんな命名規則があるのか分からなかったのでメモ。 基本的にはマニュアルの要約です。 環境 Java ・・・ jdk1.8 Spring Boot ・・・ 1.3.5-RELEASE DB ・・・ MySQL 5.7 構文 以下の3つの要素を規則に従って組み合わせたメソッド名をRepositoryインターフェースに宣言することで、自動実装が利用可能になります。 プレフィックス(find...By read...By query...By count...By get...By) キーワード フィールド名 以下のエンティティを例に使います。 @Entity public class Employee implements Ser
データベース関連は、各種のライブラリやフレームワークがもっとも多く用意されている分野でしょう。HibernateなどのORM(Object Relational Mapping)は、SQLなどを使うデータベースのアクセスと、JavaのObjectiveなコードとの整合性をとるための技術として広く使われています。 そうしたORM関連の技術の中でも、Javaの純正技術として浸透しているのが「JPA(Java Persistence API)」でしょう。まぁ、JPA自体は、ORMのための技術というより、SQLをJavaなりに使いやすくするものという感じですが、データベースとJavaオブジェクトの橋渡しをするための基本的な技術として多くのフレームワークでも使われています。 Spring Frameworkでも、JPAを利用してデータベースアクセスを行う「Spring Data JPA」というライブ
Spring Dataは、実行可能なクエリを定義する多くの方法を提供します。 これらの1つは、@Queryアノテーションです。 このチュートリアルでは、how to use the @Query annotation in Spring Data JPA to execute both JPQL and native SQL queriesを示します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く