[Seasar-user:21346] [Doma]JTAでのトランザクション管理の設定方法について
浅野護
[E-MAIL ADDRESS DELETED]
2012年 6月 12日 (火) 22:09:59 JST
浅野と申します。
DomaをEJB3.1から利用しようと試しているのですが、EJB内で例外を発生させてもロールバックしない状態です。
JSFからCDI管理のBeanからEJB3.1を呼び出し、そのEJB内からDomaのDaoを利用しようとしています。
環境は以下で試しています。
APサーバ:Glassfish3
DB:MySQL
IDE:Eclipse3.7
下記のAppConfigの記述が誤っているとは思うのですが、どのように修正したらよいか分かりません。
申し訳ありませんが、教えていただけないでしょうか。
AppConfigは以下のように記述しています。
public class AppConfig extends DomaAbstractConfig {
protected static final Dialect dialect = new MysqlDialect();
@Override
public DataSource getDataSource() {
try {
return InitialContext.doLookup("jdbc/XXXXXXX");
} catch (NamingException e) {
throw new RuntimeException(e);
}
}
@Override
public Dialect getDialect() {
return dialect;
}
}
CDI管理Beanは以下です。
@Named
@RequestScoped
public class ProjectentryController implements Serializable {
@EJB
ProjectService projectService;
public String doEntry() throws Exception {
Project entity = new Project();
…
projectService.persist(entity);
return null;
}
}
EJBは以下です。
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@ApplicationException(rollback=true)
public class ProjectService implements Serializable {
@Inject
protected ProjectDao projectDao; // Doma DAO
public void persist(Project entity) throws Exception {
projectDao.insert(entity);
if (1 == 1) {
throw new Exception();
}
}
}
よろしくお願いいたします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <https://www.seasar.org/archives/seasar-user/attachments/20120612/b21e7752/attachment.html>
Seasar-user メーリングリストの案内