まったく価値がないわけではない。次のようにHAVING句で集計関数を利用してSELECT句でエンティティを返す場合は便利だ。 select d from Department d left outer join d.employees e group by d having count(e) > 5 Javaのコード上でもエンティティとして受け取ることができる。 String jpql = "select d from Department d left outer join d.employees e group by d having count(e) > 5"; List<Department> list = entityManager.createQuery(jpql).getResultList(); しかし、次のように集計関数をSELECT句に含める場合は便利とはいえない。Ja
JPAだけで完結するのはさすがにムリがあったのでこういうタイトルにした。が、JPAプロバイダ固有のAPIのレベルではフェッチサイズを変更する効果を確認できた。 JDBCのsetFetchSize変更時の動きをstatspackで見てみる - kagamihogeの日記ではJDBCを直接使用していたが、このエントリではJPAプロバイダ(EclipseLink, Hibernate)固有のAPIを使用して100万行取得するコードの速度を、フェッチサイズ変更無しと100の時とでどのくらい速度差が生じるかを確認する。 環境 DB CentOS-6.4-x86_64 Oracle Database Express Edition 11g Release 2 Java Java SE Development Kit 7u45 Eclipse Kepler(4.3.1) SR1 IDE for Java
JDBCのaddBatchとexecuteBatchの頻度変更時の動きをstatspackで見てみる - kagamihogeの日記は、JDBCを直接使用していた。が、JPAから同じことをするにはどういう設定などをすればよいのか。それをやってみて、ついでに実行速度の違いも計測する。 実際には、正確にはJPAではなくJPAのプロバイダーであるEclipsLink,Hibernateそれぞれに固有の設定をする。とはいえ、結局はそれらの設定もJDBCのバッチ更新をラッピングしているだけ、と思われる。 環境 DB CentOS-6.4-x86_64 Oracle Database Express Edition 11g Release 2 Java Java SE Development Kit 7u45 Eclipse Kepler(4.3.1) SR1 IDE for Java EE Deve
JPQLなどJPAの機能ではカバーできない、RDB固有の機能として関数がある。countやsumなど基本的なものはあるが、それから離れるとダメだ。かといって無駄に関数を増やしたところでユーザー定義関数などもありとてもカバーしきれない。 というわけで、JPA2.1ではついにユーザー定義を含めて関数を自由に呼び出せるようになった。 Entity @Entity @Access(AccessType.FIELD) public class JoinEntity implements Serializable { @Id public int id; public String name; public JoinEntity() { } public JoinEntity(int id, String name) { this.id = id; this.name = name; } } idとn
先日、 [twitter:@seratch]さんから教えていただいたQuerydslがすごい良かったので記事として書きます。 http://www.querydsl.com/ JPAにおける課題 JPAではJPQLとCriteriaという二つのクエリ記述言語があります。 しかしながら、それぞれ使い勝手という意味では難のあるものでした。 JPQL JPQLは以下のような、SQLライクなクエリ記述言語です。 select new com.github.megascus.EmployeeBean(e.code, e.name, e.age) from Employee as e where name like 's%'SQLライクに記述することができるため、SQLが理解できる人にとっては理解しやすいという利点があります。 しかしながら、JPQL自体はただの文字列で定義する必要があります。 そのた
Для игроков с Украины в возрасте 18, 19 или 20 лет актуальным есть вопрос найти казино. Так как они сейчас везде рекламируются, но мало где упоминается, что все казино под лицензией КРАИЛ принимают с 21 года. Поэтому, игрокам все более интересные казино, которые принимают игроков с 18 лет в Украине. В связи с этим, мы проверили и отобрали лучшие казино с 18 лет и составили рейтинг, благодаря котор
はじめての Java Persistence API 2011年12月19日 at 2:03 午後 2件のコメント 今日は、Java Advent カレンダーの一貫で 12/19 分のエントリを記載します。昨日のなぎせさんに続き掲載します。また明日は私の盟友である岡崎さんです。 先日、なぎせさんより、「ProxyパターンとProxyクラスと黒魔術」と題してSQL の事を取り上げていただきました。また私自身、先日岡山のイベントで JPA について登壇したばかりなので、今日は DB つながりということで JPA (Java Persistence API) について岡山の資料を利用しながらご紹介します。 岡山の発表資料の全部はこちらです。 Java でデータベース (DB) 接続をする際、Java で一番最初に DB 接続をサポートした事から、ながく JDBC が利用されてきました。その後、J
先週書いたエントリJava EE6標準の範囲でフルスタックのWebアプリケーションが簡単に作成できることを確かめてみました。 - 達人プログラマーを目指してで、Java EE6の標準仕様を使うだけで、かなりシンプルにデータのCRUD処理を行うアプリケーションが作成できることを紹介しました。ただし、前回は全体のアプリケーションを紹介しただけなので、細かい仕掛けについては解説しきれませんでした。今回は、前回に引き続き特にJPAを使ったデータベースアクセスの部分がどうなっているのかをもう少し掘り下げて解説してみたいと思います。 なお、この場で宣伝ですが、8月10日(水)にGlassfishユーザーグループの勉強会にてお話をさせていただくことになりました。 GlassFish Japan Users Group 勉強会 2011 Summer : ATND 私はJava EE6を使った開発について
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く