标准或动态查找器,用于检索grails中状态更新项的状态/不同状态

时间:2013-06-26 02:13:55

标签: grails social-networking criteria

如何设置喜欢和不同的状态取决于用户是否已经喜欢它?我是否需要使用标准或动态查找器或gsp中的每个循环来找出喜欢和不同?

我的应用程序的模型如下所示:

Status域名有很多likes like属于userstatus
user有许多statuslikes

 <g:each in="${statusInstanceList}" status="i" var="statusInstance">
 ${fieldValue(bean: statusInstance, field: "statusMessage")}

 <g:each var="likeInstance" in="${statusInstance.like}">
  <g:set var="likesSize" value="${statusInstance.like?.size()}"/>
   $likesSize
 </g:each>

 </g:each>

$likesSize输出状态所具有的计数。 (感谢@dmahapatro)

我需要知道,如果会话用户已经喜欢或不喜欢该状态,并在其基础上显示为/不同。

更新:现在我变得与众不同,如果我使用下面的if语句 我怎么能限制它只显示不同或喜欢?

<g:each in="${statusInstance.like?.userAccountId}" status="p" var="userlike">
                      <g:if test="${userlike == session.selectedUser?.id || statusInstance.like?.statusId == statusInstance.id}">
                        Unlike
                      </g:if>
                      Like
                      </g:each>

2 个答案:

答案 0 :(得分:1)

我只是想出一个主意:

user.like会给你所有用户的喜欢 status.like会给你所有状态的喜欢。

您是否无法确定用户的状态是否也是“状态”?

您需要找到属于LikeUser的{​​{1}}。

答案 1 :(得分:0)

看起来您可以使用简单的动态查找器。

Like.findByUserAndStatus(user, status)

如果这返回结果,则用户已经喜欢该状态。