1

我的问题是我无法从 GenericManagerJPA<> 注入多个模板实例。也就是说,在这段代码中,projectManager 和 userManager 都将包含同一个 GenericManagerJPA<User>实例。我不知道为什么...

@Stateless
public class UserFacadeJPA implements Serializable {

@Inject private GenericManagerJPA<Project> projectManager;
@Inject private GenericManagerJPA<User> userManager;


@PostConstruct
public void init() {
    projectManager.setEntityClass(Project.class);
    userManager.setEntityClass(User.class);
}
....

从这个类:

@Dependent
@Stateless
public class GenericManagerJPA<T> implements Serializable {
...

如何使用 CDI 注入通用对象的不同实例?你能帮我解决这个问题吗?非常感谢。

PS:我已经阅读了这个线程(https://community.jboss.org/blogs/scott.stark/2012/08/21/a-generic-producer-method),其中介绍了如何创建它(我认为)但我假设对我来说理解起来有点复杂。因此,如果您有其他解决方案,或者您可以更清楚地向我解释原理...

4

1 回答 1

1

您遇到的是 EJB 问题,而不是真正的 CDI 问题。@Stateless如果您从班级中删除,问题就会消失GenericManagerJPA。不幸的是,EJB 不能很好地处理泛型。

于 2013-07-17T16:48:04.647 回答