【问题标题】:JSF advantage of ManagedEntity vs UnManagedEntityManagedEntity 与 UnManagedEntity 的 JSF 优势
【发布时间】:2013-05-19 10:00:37
【问题描述】:

我最近开始学习 JSF,偶然发现了以下两种将实体包含到 Controller Managed bean 中的方法。一种是直接将实体注入为ManagedBean,另一种是将实体作为非托管bean 简单地作为在@PostConstruct 初始化的实例变量。

一种或另一种方式的优点/缺点是什么?第二种通常显示为“正确的方式”,但似乎维护起来更复杂。

非托管实体

@Entity
public class Book {
 //...attributes
}

@ManagedBean
public class BookController {

   private Book book;

   @PostConstruct
   public void init() {
     book = new Book();

   }


}

托管实体

@Entity
@ManagedBean
public class Book implements Serializable {
      //...attributes
}

@ManagedBean
public class BookController {

     @ManagedProperty(name="#{customer}")
     private Book book;

}

【问题讨论】:

    标签: jsf entity managed-bean


    【解决方案1】:

    实体有自己的生命周期,并且已经由 JPA 管理。不建议(CDI 规范强烈禁止)将实体声明为托管 bean。最好在您的控制器中保留对实体的引用 - 在您的情况下为非托管实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2012-07-09
      相关资源
      最近更新 更多