SessionBeanを修正
SessionBeanとして実装したHelloWorldのsayHello()を、2つのEJBを使うように修正します。HelloCountのcountをカウントアップしてから、HelloToのfullNameを取得しに行きます。HelloCountに該当nickNameのEntityがあり、HelloToになければ、HelloCountのcountは一旦更新されてからロールバックされることになると思います。
相当に無理矢理な感じの漂うロジックですが、ご容赦ください。
public String sayHello(String nickName) { try { // まずHelloCountのcountを更新する HelloCountLocalHome countHome = HelloCountUtil.getLocalHome(); HelloCountLocal helloCount = countHome.findByPrimaryKey(nickName); Integer count = new Integer(helloCount.getCount().intValue() + 1); helloCount.setCount(count); // 続いてHelloToからフルネームを取得する HelloToLocalHome home = HelloToUtil.getLocalHome(); HelloToLocal helloTo = home.findByPrimaryKey(nickName); String fullName = helloTo.getFullName(); return "Hello " + fullName + ", "+ count.toString() + "回目です"; } catch (FinderException e) { // 見つからなかったときはEJBException throw new EJBException(e); } catch (NamingException e) { e.printStackTrace(); throw new EJBException(e); } }