Datatable (Primefaces 3.4.2) を介して表示されるデータベース テーブルがあり、データベース テーブル自体からの値が入力されたヘッダーに、comboFilter を表示したいと考えています。
1) これらの値は PK または FK ではないため、prefDep 列の個別の値を取得する名前付きクエリを作成しました。
@NamedQuery(name = "Upb.findPrefDeps", query = "SELECT DISTINCT u FROM Upb u WHERE u.prefDep = :prefDep")
2) 私の AbstractController で:
public List<T> getPrefDepsList() {
if (prefDeps == null) {
prefDeps = this.ejbFacade.findPrefDeps();
}
return prefDeps;
}
3) ファサード EJB を注入するときに、以下の filterOption で使用されるマネージド Bean プロパティを構築するにはどうすればよいですか? マネージ Bean:
@ManagedBean(name = "upbController")
@ViewScoped
public class UpbController extends AbstractController<Upb> implements Serializable {
@EJB
private UpbFacade ejbFacade;
public UpbController() {
super(Upb.class);
}
@PostConstruct
public void init() {
super.setFacade(ejbFacade);
}
public SelectItem[] getPrefDepOptions() {
return prefDepOptions; //build/populate this
}
}
jsf:
<p:column filterBy="prefdep" headerText="PrefDep"
filterOptions="#{upbController.prefDepOptions}"
filterMatchMode="exact">
<h:outputText value="#{item.prefDep}" />
</p:column>
前もって感謝します。