我有一个 JavaEE6 应用程序在 Glassfish v3.0.1 和 EJB 3.1 上运行(应用程序打包为 WAR),我所有的 EJB 都是 @LocalBeans。目前,我正在编写一个用于 JSF2 的 FacesConverter,其中我需要 EntityManager 从一个 id 中获取一个实体。
现在我想知道,既然我们在 JEE6 上,那么在 FacesConverter 中获取 Entitymanager的最佳和最干净的方法是什么?或者我什至可以通过表达式语言访问 EJB?并且 Weld/CDI 在 FacesConverter 中不起作用,是吗?
@FacesConverter(value="subscriptionListConverter")
class SubscriptionListConverter extends Converter {
public Object getAsObject(FacesContext ctx, UIComponent comp, String value) {
var id:Long = Long.parseLong(value);
// How to get the entitymanager?
return em.find(User.getClass, id);
}
public String getAsString(ctx:FacesContext, comp:UIComponent, value:Object) {...}
}
抱歉,我希望这不是重复的,但我看到的大多数情况略有不同,对我没有多大帮助。