EJB
昨日と今日は今更ながらEJBの講習でした。
そのときにEJBクライアントで気になる記述が。
前にSJC-BCを取得するために勉強した際にも
同じことが気になってたんよね。
何かというと、
InitialContext ctx = new InitialContext(); Object obj = ctx.lookup("java:comp/env/ejb/HogeHome"); HogeHome home = (HogeHome)PortableRemoteObject.narrow(obj,HogeHome.class);
この3行目の PortableRemoteObject.narrow()なんだけど。
InitialContext ctx = new InitialContext(); HogeHome home = (HogeHome)ctx.lookup("java:comp/env/ejb/HogeHome");
こんな感じでObjectをそのままHogeHomeにキャストできるのに、
なんでわざわざPortableRemoteObject.narrow()なんて使うの?
ググっても一般的にみんなそうやってるみたいだし。
いろいろ調べてみて、自分なりに出した答えは以下のとおり。
間違ってたらツッコミよろしくです。
PostgreSQL Windows版のバグ?
PostgreSQL8.0からWindows版が出たけど、
今日テストしてたらなにやら変な現象が。
SELECT ITEM.NAME AS ITEMNAME, SUM(ITEM.PRICE * ORDERS.AMOUNT) AS TOTAL FROM ITEM,ORDERS GROUP BY ITEM.NAME;
超単純な商品別受注合計金額の計算なんだけど、
その結果が↓な感じで。
ITEMNAME TOTAL - - - - - - - - - - オレンジ 1000 オレンジ 2000 リンゴ 8000 ← ここだけ集計されてる グレープ 1000 オレンジ 1000 グレープ 2000
なぜか一部だけが集計されてる状態に。
調べてったら、どうも日本語の値が含まれてる列に
GROUP BYをしたらなるみたい。
商品コードとかはならならなかったし。
動作環境は
PostgreSQL8.0.2 + Windows2000 Server
です。ちなみにRedHat ES 3.0では大丈夫でした。
Windows版がなんかあるとしか思えないんだけどなぁ。