0

2 つの単純なドメイン モデルがあります。ポートフォリオ インスタンスの表示ページ内から、発行済みフラグが NO に設定されている発行物のカウントを取得しようとしています。

NO に設定されたパブリケーションの総数を取得できますが、NO フラグのインスタンスの特定の数を取得できません。何を試しても、すべてのレコードから常に合計が返されます。インスタンス数のみを取得するにはどうすればよいですか。

例: ユーザーがポートフォリオの表示ページ (アクション) をロードすると、出版物のリストが表示され、その特定のポートフォリオの「発行済み」フラグ NO をカウントすることにより、発行されていない出版物を示す数値フィールドが表示されます。

Publication.countByPublished('No')、${Publication.executeQuery("select count (published) from Publication where published=?",['No'])} およびその他のさまざまな方法を試しましたが、うまくいかないようですそのポートフォリオ ID が入っているので、公開済みフラグが No であるその ID の出版物のみがカウントされます。

これには本当に頭を悩ませています

クラスポートフォリオ

hasMany = [publications:Publication]

Sring portfolioName

クラスの出版物

belongsTo = [portfolio: Portfolio]

String publicationName
String publicationContent
String published

static constraints = {
published (blank: false, inList: ["No","Yes"]) 
4

1 に答える 1

2

やってみました:

def count = Publication.countByPublishedAndPortfolio("No", portfolioInstance)

あまり効率的でない方法は、出版物のポートフォリオ コレクションを反復処理し、カウンターを保持することです。

def count = 0
portfolioInstance.publications.each {
  if (it.published == 'No') {
    count++
  }
}
于 2013-02-07T01:59:08.853 に答える