Java EE 7徹底入門を読んだ(JPAだけ)

一通りは読むのだけれども、たぶんJPAだけは一部の人に期待されている気がするので、先に読んだ感想だけ書いておきます。

JPAについては7章、8章に書いてありました。

とりあえず、JPAについては読まないほうが良いかなと。
いろいろなところで、書いている人がJPAを勘違いしている?のが見えるかつ内容としてもJava EE 7で増えた分はなさそうなので、これを読むぐらいなら金魚本がよいかと。

Beginning Java EE 6~GlassFish 3で始めるエンタープライズJava (Programmer's SELECTION)

Beginning Java EE 6~GlassFish 3で始めるエンタープライズJava (Programmer's SELECTION)

以下気になったところ

  • エンティティマネージャーの説明で永続化コンテキストは何かという説明があやふや。
  • EntityがSerializableでなければいけない場合の説明がJSRと食い違っている。というか、Entityである条件自体JSRを読んでないよね?
  • エンティティクラスはIDとして定義したフィールドを使用してhashCodeメソッド、equals(Object)メソッドを定義しなければいけないことなんてない。たぶん次の分の誤訳。"The primary key class must define equals and hashCode methods. The semantics of value equality for these methods must be consistent with the database equality for the database types to which the key is mapped."
  • エンティティの関連が双方向しか書いてない。
  • EntityManager#persistメソッドの挙動がJSRで規定されているものと違うことが書いてある。
  • トランザクションの管理はEJBが担ってる?
  • N+1問題の説明が間違っている。N+1問題にはFETCH JOIN使えばいいということだけ覚えていた人が書いたような文章。
  • などなど

JSRと読み比べて怪しい場所をピックアップしてたけど、半分ぐらいで面倒くさくなった。

その他、細かい気になるところまで含めると多すぎて書く気が起きない。EntityManager#flushの挙動とか。JPQLのIN句にcollectionを指定できる話とか。
まあ、微妙だ。すごい微妙だ。

Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築

Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築

さて、ほかの場所はどんな感じかしら。