Java EE勉強会

JPQLのHAVING句の変な仕様?

JPQLのHAVING句ですが、TopLinkでは以下のクエリが動きませんでした(Hibernateでは問題なく動きます)。 SELECT e.department.id, MAX(e.salary) FROM Employee e GROUP BY e.department.id HAVING MAX(e.salary) > 1000 一見、まったく問題なさそうなので…

ProEJB 3(asin:1590596455) 7章の資料up

前回の勉強会では、JPQL(JPAの問い合わせ言語)から生成されたSQLをEclipseのコンソールで見たりしたのですが、なんだかわかりにくかったので別のパワポにまとめました。JPQLがどんなSQLに変換されるのかは面白いと思うのでJPAに否定的な人も肯定的な人もよ…

S2JUnit4でコンテナ作成前に環境名を変更する

Java EE勉強会でのはなし。 @Prerequisiteに指定するOGNL式はコンテナ作成前に評価されるので、これを利用できますです。ただ、最終的に評価される式はtrueにならないとテストケースの実行がスキップされてしまうので注意。 @RunWith(Seasar2.class) public …

Joined Subclass の バルク更新

JPQLのバルク更新はポリモーフィックです。どういうことかというと、たとえば親エンティティへのDELETE操作は子エンティティへのDELETE操作でもあるのです。その結果、マッピングによってはJPQLのDELETE文がSQLでは複数のDELETE文になることがあります。Java…

FlushModeType.COMMITでSELECTすると削除されたEntityが読めるのか?

Java EE勉強会で「FlushModeType.COMMITを指定してremovedなエンティティを読もうとしたら例外が起きるということが仕様書に書いてあったような...」と言ったのですが、言った後だんだん自信がなくなってきました。ちょっとS2Hibernate-JPAを使って試してみ…

EntityNotFoundExceptionにはThrowableを受け付けるコンストラクタがない

Java EE勉強会でThrowableなクラスにThrowableを受け付けるコンストラクタがないやつがあるという話がありました。実は下に出てきたEntityNotFoundExceptionもその1つ。 http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityNotFoundException.h…

Merge実行時にSELECT文が実行されるのか?

試してみました。

エンティティクラスとテーブル名

「@Tableでテーブル名を指定しなければクラス名がテーブル名になる」というは正確ではなないと言いたかったのですが、うまく説明できたようなできなかったような...。 ちょっとまとめてみます。エンティティクラスを作るときって、意識する名称が3つあるって…