0

我有 2 个简单的域模型。我正在尝试从投资组合实例的显示页面中计算已发布标志设置为 NO 的出版物。

我可以获得设置为 NO 的出版物总数,但无法获得 NO 标志的特定实例数。无论我尝试过什么,我总是从所有记录中得到总回报。我怎样才能只获得实例计数。

示例:用户加载 Porfolio 的显示页面(操作),显示出版物列表,通过计算该特定 Portfolio 的“已发布”标志 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 回答