Session BeanからDB連携を行う場合、Session Beanの属性(STATEFUL、STATELESS)により注意すべき事項について説明します。
STATEFULの場合
1対1の対話の状態が保持される STATEFULの場合、ビジネスメソッドを越えてトランザクションの処理ができます。1トランザクション内で、複数メソッドの処理ができます。
注意
Entity Beanを使用する場合、EJBサービスが提供するトランザクション機能でトランザクションを開始していないと正しく動作しません。
STATELESSの場合
1対1の対話の状態が保持されないSTATELESSの場合、いったんビジネスメソッドを抜けると、そのトランザクションを引き継いで処理を行うことができません。ビジネスメソッドを抜ける前にトランザクションが完結するようにしてください。
1メソッドを1トランザクションで処理します。ビジネスメソッドを抜けたときにトランザクションが完結していない場合、トランザクションは自動的にロールバックされます。