編集-
ポートフォリオのリストと、2 つのドメイン クラスから各ポートフォリオに添付された最新の 5 つの出版物を返そうとしています。最後の合計 5 つのパブリケーションを取得しています。各リストには 5 つすべてが表示されます。クエリは、特定のインスタンス独自のパブリケーションを返しません。ケリーの素晴らしいアイデアは別のトラックに戻されます。
ポートフォリオ ドメイン クラスに属するパブリケーションの hasMany 側であるポートフォリオ コントローラーにメソッドを作成しました。
ポートフォリオに独自の出版物をリストするようには見えません。eq ポートフォリオを変更すると、各ポートフォリオ リストに同じ出版物が表示されることを除いて、すべて正常に機能します。
各ポートフォリオを読み込んで、最新の 5 つの出版物を一覧表示するにはどうすればよいですか。これは、ポートフォリオ/リスト ページからパーシャルとしてレンダリングされます。これが問題なのかもしれません。ポートフォリオ リスト アクションに関連付けられていない新しいビューからレンダリングする必要がありますか??
grailsの初心者で、ドキュメントを読んで読んだことがありますが、paramsクエリが正しく返されないようです。ヘルプ
def _webList (){
//def per = Portfolio.properties
def portfolios = Portfolio.list(params.id)
def results = Publication.withCriteria {
eq('published', 'Yes')
order('lastUpdated', 'desc')
maxResults(5)
}
def reportscount = Publication.count()
[ portfolios: portfolios, results: results, reportscount: reportscount]
}
必要に応じて、SQL ログを表示できます。
編集
次のコードは、ファイル _webList.gsp の部分全体です。トップ div アラートがページに読み込まれますが、div プロパティ リスト ポートフォリオ内のコンテンツの読み込みに失敗します。ケリーの休止状態基準を使用すると、SQL ログにクエリが生成されますが、結果やスタイルなどはビューに返されませんか??. 変。!
<div class="alert alert-info" xmlns="http://www.w3.org/1999/html">Permissions apply to <strong>editing</strong> publications.<br>
<div style="display: inline;"><p>Click portfolio name to read or edit publications. Total number of sites: <strong>${rsNumb}</strong> | Total number of publications: <strong>${reportscount}</strong> </p>
</div>
</div>
<div class="property-list portfolio">
<g:each in="${portfolios}" var="portfolioInstance">
<div class="site-listing">
<div><span class="label">Site Name:</span><g:link action="show" id="${portfolioInstance?.id }">${portfolioInstance?.portfolioName?.encodeAsHTML()}</g:link></div>
<div><span class="label">Site Description: </span>${portfolioInstance?.portdescrip?.encodeAsHTML() }</div> <br>
<div><span class="label">Site Administrator: </span>${portfolioInstance?.profile?.portfolioAdmin?.encodeAsHTML() }</div> <br>
<div><span class="label"> Total publications:</span><span class="badge badge-success"> ${portfolioInstance?.publications?.size()}</span> </div>
<!-- whatever else you need here -->
<!-- now iterate through the pubs -->
<g:if test="${portfolioInstance?.publications}">
<g:set var="publicationInstance" />
<ul class="site-publication">
<li class="fieldcontain">
<span id="publications-label" class="property-label"><g:message code="portfolio.publications.label" default="Last 5 published publications:" /></span>
<g:each in="${portfolioInstance.publications}" var="publicationInstance">
${publicationInstance?.id}
<span class="property-value" aria-labelledby="publications-label"><g:link controller="publication" action="show" id="${publicationInstance.id}">${publicationInstance?.encodeAsHTML()}</g:link></span>
<!-- and again whatever else you need here -->
</g:each>
</g:if>
</g:each>
</div>
編集- 以下のSQLログ
Hibernate: select this_.id as id5_1_, this_.version as version5_1_, this_.date_created as date3_5_1_, this_.last_updated as last4_5_1_,
this_.portdescrip as portdesc5_5_1_, this_.portfolio_name as portfolio6_5_1_, this_.portpublished as portpubl7_5_1_, this_.profile_id as profile8_5_1_,
this_.status as status5_1_,
publicatio1_.portfolio_id as portfolio5_5_3_,
publicatio1_.id as id3_, publicatio1_.id as id2_0_,
publicatio1_.version as version2_0_,
publicatio1_.date_created as date3_2_0_,
publicatio1_.last_updated as last4_2_0_,
publicatio1_.portfolio_id as portfolio5_2_0_,
publicatio1_.publication_content as publicat6_2_0_,
publicatio1_.publication_name as publicat7_2_0_,
publicatio1_.published as published2_0_,
publicatio1_.publisheddate as publishe9_2_0_,
publicatio1_.publishedemail as publish10_2_0_,
publicatio1_.pubproduct_id as pubproduct11_2_0_
from portfolio this_ left outer join publication publicatio1_
on this_.id=publicatio1_.portfolio_id where (this_.status=?)
and (publicatio1_.published=?) order by publicatio1_.last_updated desc