2012-12-22 32 views
1

我正在使用primefaces 3.4和JSF 2.0。我有一個2表,一個是客戶端主,另一個是案例大師。當案例大師條目完成時,只有案例主表中的客戶ID(案例大師中的外鍵)將被更新。我已經使用與primefaces展示中給出的自動完成相同的場景。如何獲得數據表中的轉換值

用戶只是輸入一些字符,並根據該名稱將被建議。用戶選擇其中一個,並保存它時,只有客戶端ID將被保存在case master.Basically我已經使用轉換器。

當用戶添加案例輸入時,它必須顯示在數據表中。現在問題是我必須顯示客戶端名稱而不是客戶端ID。任何人都可以建議我如何在數據表中實現。

我曾嘗試以下

Created method in managed bean. 
value="#{caseUitility.clientName(case.id.clientID)}" 
but failed. 

重度:無法初始化代理 - 沒有會話

org.hibernate.LazyInitializationException:無法初始化代理 - 沒有會話

燦任何人都建議我如何在數據表中實現。我應該爲返回客戶端名稱的同一客戶端主機創建多個轉換器。還是其他的東西?

我希望這是非常愚蠢的事情,對於你們所有人來說,但是我真的從一天半開始在這裏堆積。

在此先感謝....

回答

0

看起來好像是entity或者field你打算在你的clientName()方法中訪問,而不是從數據庫中查詢。您可以通過在clientName()方法中重新查詢數據庫中的client對象或相關實體來解決此問題。
檢查您的stacktrace並找到拋出異常的行,然後您可以找到延遲加載的entity
如果沒有看到您的方法和拋出異常的行,很難說更多的東西。

0

以下是獲得轉換值的步驟,例如,爲主題ID課題名稱:

  1. 創建一個方法在Managed Bean類來獲取主體名稱


public String getSubjectNameById(Integer subjectID) 
    { 
     String subjectName = getSubjectsService().getSubjectById(subjectID).getSubjectName(); 
     return subjectName; 
    } 


2.呼叫從XHTML類DataTable中列的方法是這樣的:

<p:column sortBy="#{QuestionsMB.subjectNameById}"> 
    <f:facet name="header"> 
     <h:outputText value="Subject :" /> 
    </f:facet> 
    <h:outputText value="#{QuestionsMB.getSubjectNameById(question.subjectId)}" /> 
</p:column> 

我希望這有助於:)

相關問題