我想知道哪个是好习惯。例如,我有用于实体类的Person pojo,用于持久化Person类和indexBean( CDI请求范围bean )的PersonService EJB无状态会话bean 与JSF绑定以创建Person类。
在indexBean中创建新的Person对象而不是使用@Inject是否合适?
如果没有,你能告诉我我应该如何设计这个场景?感谢。
答案 0 :(得分:2)
根据焊接的CDI文档,您不应注入实体bean:
根据此定义,JPA实体是技术上管理的bean。但是,实体有自己的特殊生命周期,状态和身份模型,通常由JPA实例化或使用new。因此,我们不建议直接注入实体类。我们特别建议不要将@Dependent之外的作用域分配给实体类,因为JPA无法持久注入CDI代理。
您可以找到更多信息here。
您需要在indexBean中创建一个新的Person对象/或从Database(由PersonService)加载它,具体取决于您的用例。 Person实体的持久性最终将由您的PersonService完成。