EJB3开发中遇到的3个问题
三个问题需要向大家请教,
1. TransactionManagement(TransactionManagementType.BEAN)可以被继承吗?
我把事物的界定放在了DDD中提到的APPLICATION层,也就是JDON中的SERVICE中。我定义了一个
@TransactionManagement(TransactionManagementType.BEAN)
public abstract class ApplicationBase {
@Resource
protected UserTransaction ut;
}
然后其他的APPLICATION层中的SESSION FACADE BEAN都继承自这个类,那这样 @TransactionManagement(TransactionManagementType.BEAN) 可以被继承吗? 我查了资料, 都没有找到。。
2. 就是在DAO层, 我想分别用SQL, JPA实现持久,分别用在不同的地方,比如做报表的时候,还是直接用SQL实现的比较好,其他的业务逻辑还是用JPA实现比较方便,这样就出现了一个问题
public class CustomerDaoMysql implements CustomerDao 这个SQL实现类可以正常运行
public class CustomerDaoJpa implements CustomerDao 这个实现类,因为用到了
@PersistenceContext
private EntityManager em; 必须是在EJB容器环境中。。那这样我就必须把CustomerDaoJpa 定义为一个SESSION BEAN吗?如果我必须把CustomerDaoJpa 定义为一个SESSION BEAN, 那注入的时候就必须要用@EJB了? 这个时候的注入就有了一些问题, SQL实现类的注入是通过IOC框架, JPA实现类的注入只能通过@EJB, 是不是可以用个桥接之类或者工厂转换一下, 我现在还没有确定,希望各位大侠给个意见。。
3. 还有就是我现在有一个问题,也许是我的基本功不够扎实,有个疑惑, 我是在APPLICATION层定义了SESSION BEAN, 并调用了DDD中的仓储 SERVICE MODEL 等, 这个统称DOMAIN吧, 现在单机测试来说没有问题, 如果以后分布部署EJB了, 那放在DOMAIN中的不是EJB的POJO会出现问题吗? 按道理来说,应该不会的,可是我不敢确定
[该贴被tangshd于2009-07-14 08:44修改过]