こんにちは、Liferay SKD for Java と Liferay 6.1(Tomcat) を使用しています。次のようにカスタムデータベースを作成しました。
<entity name="PCustomer" local-service="true" remote-service="false">
<!-- PK fields -->
<column name="customerId" type="int" primary="true" />
<!-- Audit fields -->
<column name="name" type="String"/>
<column name="vAddress" type="String"/>
<column name="pAddress" type="String"/>
<column name="comments" type="String"/>
<column name="pusers" type="Collection" entity="PUser" mapping-key="userId"/>
<column name="pcontacts" type="Collection" entity="PContact" mapping-key="contactId"/>
<column name="pdemos" type="Collection" entity="PUserDemo" mapping-key="demoId"/>
<column name="plicenses" type="Collection" entity="PLicense" mapping-key="licenseId"/>
<column name="pfolders" type="Collection" entity="PFolder" mapping-key="folderId"/>
</entity>
Service.xml を使用して、特定の顧客に関連付けられているすべての連絡先を取得したいと考えています。問題は、JSP ページでこれを行うと、次のようになることです。
<%
String user = request.getRemoteUser();
int userId = Integer.valueOf(user);
PUser pUser=PUserLocalServiceUtil.getPUser(userId);
int customerId = pUser.getCustomerId();
PCustomer customer=PCustomerLocalServiceUtil.getPCustomer(customerId);
java.util.List<PContact> contCus=PCustomerUtil.getPContacts(customerId);
%>
そして、for each ループを使用して、このリストを調べてみてください。
%for (PContact pContact : contCus)
if(pContact.getUserType().equals("billing"))
{%> DO SOMETHING <% } %>
それは私にエラーを与えます:
java.lang.ClassCastException: $Proxy288 は com.myportlet.service.persistence.PCustomerPersistence にキャストできません
私はそれをデバッグし、すべての値はOKで、JSPページでリストを作成しようとするまで機能しています。問題は、そのページで、そのようなリストを作成する必要があることを示していることです。このパラメーターなどを使用します。エラーは発生しません。
誰かが私を助けたり、私が間違っていることを教えてくれますか?
どんな助けでも大歓迎です。前もって感謝します!!!!