这个问题的关键点:
不同用户使用的业务功能是一样的,只是业务操作的数据源是不一样的。
也就是说,数据源需要在运行时动态的指定。而cmp实在配置时指定的,也就不是在运行时指定的(我不确定,cmp是否可以动态指定数据源)。
这种情况可以考虑用hibernate,动态运行时,根据一定的规则,去取得不同的数据源的session(hibernate中的概念)。这样就可以动态实现操作不同的数据源。
而且hibernate也是o/r mapping,功能比cmp要强,只是数据库的事务性支持不如cmp,其他的hsql要比ejb-ql要强得多。