SlideShare a Scribd company logo
1 of 19
Download to read offline
金魚本に載ってないJPQLの話
              @megascus




12年9月24日月曜日
金魚本のJPQLの記載




12年9月24日月曜日
15 / 557ページ




12年9月24日月曜日
金魚本に載っていないけど
              使えるJPQLの構文



12年9月24日月曜日
副問い合わせ

  SELECT emp
    FROM Employee emp
    WHERE emp.salary > [ALL,ANY,SOME] (
      SELECT m.salary
      FROM Manager m 
      WHERE m.department = emp.department)




12年9月24日月曜日
副問い合わせ(EXISTS句)


  SELECT DISTINCT emp
  FROM Employee emp
  WHERE [NOT] EXISTS (
    SELECT spouseEmp
    FROM Employee spouseEmp
    WHERE spouseEmp = emp.spouse)




12年9月24日月曜日
相関副問い合わせ



  SELECT c
  FROM Customer c
  WHERE
  (SELECT AVG(o.price) FROM c.orders o) > 100




12年9月24日月曜日
結合


  SELECT o
  FROM Order AS o
  [[LEFT] OUTER,INNER] JOIN o.lineItems l
  JOIN l.product p




12年9月24日月曜日
FETCH JOIN

      SELECT o
      FROM Order AS o
       JOIN FETCH o.lineItems l


  ※Lazyフェッチになっている結合を

  強制的にEagerフェッチにする




12年9月24日月曜日
こんなエラーを見たら使う

  • Hibernate

     org.hibernate.LazyInitializationException: could not initialize proxy - no Session


  • EclipseLink

     org.eclipse.persistence.exceptions.ValidationExceptionException Description: An attempt was made
     to traverse a relationship using indirection that had a null Session. This often occurs when an entity
     with an uninstantiated LAZY relationship is serialized and that lazy relationship is traversed after
     serialization. To avoid this issue, instantiate the LAZY relationship prior to serialization.




12年9月24日月曜日
コンストラクタ式

      SELECT NEW example.CustomerDetails(c.id,
      c.status, o.count)
      FROM Customer c JOIN c.orders o WHERE
      o.count > 100




12年9月24日月曜日
コンストラクタ式


  • 使いこなせればEager、Lazyの判断が要らなくなる。


     (全部Eagerで性能の心配がある時コンストラクタ式で取得)

  • サマリーを取得したい場合には使って下さい。




12年9月24日月曜日
JPQL使用上の注意




12年9月24日月曜日
JPQL使用上の注意


  • すでにメモリ上に取得されたエンティティへの反映は

     行われない。

  • @Versionの更新は自動では行われない。




12年9月24日月曜日
メモリ上のエンティティ




12年9月24日月曜日
@VERSIONの更新


  UPDATE customer c
  SET c.status = ‘outstanding’
      c.version = c.version + 1
  WHERE c.balance < 10000

  ※JPQLの場合楽観ロックは自分で制御して下さい。




12年9月24日月曜日
JPQLの予約語

  ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, (BIT_LENGTH), BOTH, BY,
  CASE, (CHAR_LENGTH), (CHARACTER_LENGTH), CLASS, COALESCE,
  CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME,
  CURRENT_TIMESTAMP, DELETE, DESC, DISTINCT, ELSE, EMPTY, END,
  ENTRY, ESCAPE, EXISTS, FALSE, FETCH, FROM, GROUP, HAVING, IN,
  INDEX, INNER, IS, JOIN, KEY, LEADING, LEFT, LENGTH, LIKE, LOCATE,
  LOWER, MAX, MEMBER, MIN, MOD, NEW, NOT, NULL, NULLIF, OBJECT,
  OF, OR, ORDER, OUTER, (POSITION), SELECT, SET, SIZE, SOME, SQRT,
  SUBSTRING, SUM, THEN, TRAILING, TRIM, TRUE, TYPE, (UNKNOWN),
  UPDATE, UPPER, VALUE, WHEN, WHERE

  ※括弧でくくってあるものは将来に対する予約語



12年9月24日月曜日
JSR 317
     JavaTM Persistence
       API Version 2.0
              今日の内容+α
      全部書いてあります。



      http://jcp.org/en/jsr/detail?id=317


12年9月24日月曜日
マスタリング
              JAVAEE5
                 古くても
    日本語情報が欲しい場合



              http://goo.gl/C1QZQ


12年9月24日月曜日

More Related Content

What's hot

Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターンMoriharu Ohzu
 
えっ今日はハッキングしてもいいのか?(CTF Web入門)
えっ今日はハッキングしてもいいのか?(CTF Web入門)えっ今日はハッキングしてもいいのか?(CTF Web入門)
えっ今日はハッキングしてもいいのか?(CTF Web入門)otya mura
 
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...Google Cloud Platform - Japan
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~Fujio Kojima
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門Ryosuke Uchitate
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021Atsushi Nakamura
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPIAkihiro Ikezoe
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎信之 岩永
 
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説Masatoshi Tada
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話Ryosuke Uchitate
 

What's hot (20)

Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
えっ今日はハッキングしてもいいのか?(CTF Web入門)
えっ今日はハッキングしてもいいのか?(CTF Web入門)えっ今日はハッキングしてもいいのか?(CTF Web入門)
えっ今日はハッキングしてもいいのか?(CTF Web入門)
 
AWS CognitoからAuth0への移行パターン4つ
AWS CognitoからAuth0への移行パターン4つAWS CognitoからAuth0への移行パターン4つ
AWS CognitoからAuth0への移行パターン4つ
 
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
非同期処理の基礎
非同期処理の基礎非同期処理の基礎
非同期処理の基礎
 
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話
 

More from Satoshi Kubo

Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations Satoshi Kubo
 
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらいSatoshi Kubo
 
できる!Pmdカスタマイズ
できる!Pmdカスタマイズできる!Pmdカスタマイズ
できる!PmdカスタマイズSatoshi Kubo
 
Javaの速度比較
Javaの速度比較Javaの速度比較
Javaの速度比較Satoshi Kubo
 
Java EEの話(仮)
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)Satoshi Kubo
 
テストって何がしたいんですか?
テストって何がしたいんですか?テストって何がしたいんですか?
テストって何がしたいんですか?Satoshi Kubo
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Satoshi Kubo
 
泥沼の中のパフォーマンスチューニング #JJUG
泥沼の中のパフォーマンスチューニング #JJUG泥沼の中のパフォーマンスチューニング #JJUG
泥沼の中のパフォーマンスチューニング #JJUGSatoshi Kubo
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
Advent calendarを作ってみた
Advent calendarを作ってみたAdvent calendarを作ってみた
Advent calendarを作ってみたSatoshi Kubo
 
Java ee6 with scala
Java ee6 with scalaJava ee6 with scala
Java ee6 with scalaSatoshi Kubo
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたSatoshi Kubo
 
JavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpJavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpSatoshi Kubo
 

More from Satoshi Kubo (15)

Jakarta CDI 4.0
Jakarta CDI 4.0Jakarta CDI 4.0
Jakarta CDI 4.0
 
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
Jakarta EE/MicroProfileの世界をひろげるRed Hat Application Fundations
 
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
2022年7月JJUGナイトセミナー「Jakarta EE特集」MicroProfile あらためてのおさらい
 
今のJava
今のJava今のJava
今のJava
 
できる!Pmdカスタマイズ
できる!Pmdカスタマイズできる!Pmdカスタマイズ
できる!Pmdカスタマイズ
 
Javaの速度比較
Javaの速度比較Javaの速度比較
Javaの速度比較
 
Java EEの話(仮)
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)
 
テストって何がしたいんですか?
テストって何がしたいんですか?テストって何がしたいんですか?
テストって何がしたいんですか?
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
 
泥沼の中のパフォーマンスチューニング #JJUG
泥沼の中のパフォーマンスチューニング #JJUG泥沼の中のパフォーマンスチューニング #JJUG
泥沼の中のパフォーマンスチューニング #JJUG
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
Advent calendarを作ってみた
Advent calendarを作ってみたAdvent calendarを作ってみた
Advent calendarを作ってみた
 
Java ee6 with scala
Java ee6 with scalaJava ee6 with scala
Java ee6 with scala
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
 
JavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpJavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjp
 

金魚本に載ってないJpqlの話 #glassfishjp

  • 1. 金魚本に載ってないJPQLの話 @megascus 12年9月24日月曜日
  • 4. 金魚本に載っていないけど 使えるJPQLの構文 12年9月24日月曜日
  • 5. 副問い合わせ SELECT emp FROM Employee emp   WHERE emp.salary > [ALL,ANY,SOME] (     SELECT m.salary     FROM Manager m  WHERE m.department = emp.department) 12年9月24日月曜日
  • 6. 副問い合わせ(EXISTS句) SELECT DISTINCT emp FROM Employee emp WHERE [NOT] EXISTS ( SELECT spouseEmp FROM Employee spouseEmp WHERE spouseEmp = emp.spouse) 12年9月24日月曜日
  • 7. 相関副問い合わせ SELECT c FROM Customer c WHERE (SELECT AVG(o.price) FROM c.orders o) > 100 12年9月24日月曜日
  • 8. 結合 SELECT o FROM Order AS o [[LEFT] OUTER,INNER] JOIN o.lineItems l JOIN l.product p 12年9月24日月曜日
  • 9. FETCH JOIN SELECT o FROM Order AS o JOIN FETCH o.lineItems l ※Lazyフェッチになっている結合を 強制的にEagerフェッチにする 12年9月24日月曜日
  • 10. こんなエラーを見たら使う • Hibernate org.hibernate.LazyInitializationException: could not initialize proxy - no Session • EclipseLink org.eclipse.persistence.exceptions.ValidationExceptionException Description: An attempt was made to traverse a relationship using indirection that had a null Session. This often occurs when an entity with an uninstantiated LAZY relationship is serialized and that lazy relationship is traversed after serialization. To avoid this issue, instantiate the LAZY relationship prior to serialization. 12年9月24日月曜日
  • 11. コンストラクタ式 SELECT NEW example.CustomerDetails(c.id, c.status, o.count) FROM Customer c JOIN c.orders o WHERE o.count > 100 12年9月24日月曜日
  • 12. コンストラクタ式 • 使いこなせればEager、Lazyの判断が要らなくなる。 (全部Eagerで性能の心配がある時コンストラクタ式で取得) • サマリーを取得したい場合には使って下さい。 12年9月24日月曜日
  • 14. JPQL使用上の注意 • すでにメモリ上に取得されたエンティティへの反映は 行われない。 • @Versionの更新は自動では行われない。 12年9月24日月曜日
  • 16. @VERSIONの更新 UPDATE customer c SET c.status = ‘outstanding’ c.version = c.version + 1 WHERE c.balance < 10000 ※JPQLの場合楽観ロックは自分で制御して下さい。 12年9月24日月曜日
  • 17. JPQLの予約語 ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, (BIT_LENGTH), BOTH, BY, CASE, (CHAR_LENGTH), (CHARACTER_LENGTH), CLASS, COALESCE, CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DESC, DISTINCT, ELSE, EMPTY, END, ENTRY, ESCAPE, EXISTS, FALSE, FETCH, FROM, GROUP, HAVING, IN, INDEX, INNER, IS, JOIN, KEY, LEADING, LEFT, LENGTH, LIKE, LOCATE, LOWER, MAX, MEMBER, MIN, MOD, NEW, NOT, NULL, NULLIF, OBJECT, OF, OR, ORDER, OUTER, (POSITION), SELECT, SET, SIZE, SOME, SQRT, SUBSTRING, SUM, THEN, TRAILING, TRIM, TRUE, TYPE, (UNKNOWN), UPDATE, UPPER, VALUE, WHEN, WHERE ※括弧でくくってあるものは将来に対する予約語 12年9月24日月曜日
  • 18. JSR 317 JavaTM Persistence API Version 2.0 今日の内容+α 全部書いてあります。 http://jcp.org/en/jsr/detail?id=317 12年9月24日月曜日
  • 19. マスタリング JAVAEE5 古くても 日本語情報が欲しい場合 http://goo.gl/C1QZQ 12年9月24日月曜日