12. EJBのコンテナ管理のトランザクション 2/2
すでにトランザクションが開始されていたら、
Not そのトランザクションを一時停止して、トラン
Supported ザクションなしで処理を行う。処理が終わったら
停止していたトランザクションを復活させる。
呼び出し元のトランザクション属性で実行する。
Supported
すでにトランザクション開始されていたら、
Title RemoteExceptionを発生させる。
13. EJB3 エンティティBeanサンプル
@Entity
public class User {
@Id
@GeneratedValue
public Integer id;
public String userName;
}
テーブルとマッチングさせて記述するのが基本。
S2JDBCでもJPAの考えは入れているので同じようなEntityクラスになる。
14. EJB3 SessionBeanサンプル 1/2
@Local
public interface UserDao {
public void userInsert();
public List<User> findAll();
}
セッションBeanはLocalかRemoteのインターフェースが必要。
もちろん両方実装する事も可能。
15. EJB3 SessionBeanサンプル 2/2
@Stateless
public class UserDaoBean implements UserDao { EJBコンテナが
フィールドインジェクション
@PersistenceContext(unitName = quot;hsqldbEjb3quot;)
private EntityManager entityManager; してくれる
public void userInsert() {
// SessionBeanの中での処理なのでJTAトランザクション配下にある
// EntityBeanをNewする まだ永続化されていない
User user = new User();
user.userName = “hogehoge”;
// 永続化
entityManager.persist(user);
}
public List<User> findAll() {
Query query = entityManager.createQuery(quot;SELECT user FROM User AS userquot;);
return query.getResultList();
}
}