我想知道哪一个是好做法。例如,我有Person pojo用于实体类,PersonService EJB无状态会话bean用于持久化Person类,indexBean(CDI request Scope bean)用于与JSF绑定以创建Person类。
在indexBean中创建新的Person对象而不是使用@Inject好吗?
如果没有,你能告诉我该如何设计这个场景吗?谢谢。
发布于 2018-01-29 00:59:51
根据焊缝的CDI文档,不应该注入实体bean:
根据这个定义,JPA实体是技术上被管理的bean。然而,实体有自己的特殊生命周期、状态和身份模型,通常是通过JPA或使用new实例化的。因此,我们不建议直接注入实体类。我们特别建议不要将@依赖的作用域分配给实体类,因为JPA无法持久化注入的CDI代理。
您可以找到更多的信息,这里。
您应该创建一个新的Person对象/或(通过您的PersonService)在indexBean中从数据库加载它,这取决于您的应用程序。另外,Person实体的持久性将最终由您的PersonService完成。
https://stackoverflow.com/questions/48465015
复制