Mybatis使用GenenedKeys在EJB和Proxy中失败

时间:2016-01-22 09:23:52

标签: java mybatis ejb-3.1 wildfly-8

我正在使用在Wildfly 8.2.1 App服务器上运行的Mybatis 3.3.0和EJB 3.1。

我修改了我的EJB以获得远程接口并将接口注入到我需要功能的所有类中,而不是注入LocalBean实现(就像之前一样)。

这导致我的映射器文件的所有useGeneratedKeys配置插入语句停止工作。现在,在插入成功运行后,我的ID字段仍然为空。

这是怎么导致mybatis无法将ID填入我的POJO。

1 个答案:

答案 0 :(得分:0)

事实证明,当您的EJB被代理并且无法将生成的ID放回POJO时,mybatis会感到困惑。

要修复它,您只需将带有@javax.ejb.LocalBean实现的EJB Annotated直接注入要使用它的类中。这不是注入带有@javax.ejb.Remote注释的接口。

此外,我使用远程EJB测试了相同的实现,并发现如果注入@javax.ejb.Remote接口类型,您仍然无法从mybatis获取生成的密钥。在使用远程处理时,我还没有找到将生成的ID放入POJO的解决方案。