JPA lazy loading Sammlungen in JSF-Sicht - besseren Weg, als mit Filter?

Derzeit bin ich über eine Transaktion Muster Anzeigen, um lazy-loading von Sammlungen möglich in Aussicht.

Ich habe Folgendes in web.xml

<filter>
  <filter-name>view</filter-name>
  <filter-class>com.jasoni.ViewFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>view</filter-name>
  <url-pattern>*.xhtml</url-pattern>
</filter-mapping>

Und die Filter-Klasse hat die folgenden...

public class ViewFilter implements Filter {
  @Resource UserTransaction tx;

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    try {
      tx.begin();
      chain.doFilter(request, response);
    }
    //catch here
    finally {
      //another try-catch
      tx.commit();
    }
  }
}

Dann vorausgesetzt, ich habe die folgenden (eher gekünstelt), backing-bean

@ManagedBean
@RequestScoped
public class DepartmentEmployees {
  @EJB
  private DepartmentServiceBean deptService;
  @ManagedProperty(value="#{param.deptId}")
  private Integer deptId;
  private Department dept;

  @PostConstruct
  public String init() {
    dept = deptService.findById(deptId);
  }
}

Kann ich tun so etwas wie dieses aus meiner Sicht (.xhtml-Datei)

<ul>
<c:forEach var="emp" items="#{departmentEmployees.dept.employees}">
  <li>#{emp.firstName} #{emp.lastName}</li>
</c:forEach>
</ul>

Nur Fragen, ob jemand weiß, von einem anderen Weg zu erreichen, die gleiche Sache ohne die Verwendung von filtern (oder servlets).

InformationsquelleAutor JasonI | 2012-03-30
Schreibe einen Kommentar