我有2个简单的域模型。我正在尝试计算在投资组合实例的显示页面中将已发布标志设置为NO的出版物。
我可以将发布的总数设置为NO,但无法获得实例特定的NO标志数。无论我尝试过什么,我总是从所有记录中得到回报。我怎样才能获得实例计数。
示例:用户加载Porfolio的显示页面(操作),显示出版物列表,数字字段显示尚未通过计算该特定投资组合的“已发布”标记NO发布的出版物。
我已经尝试过Publication.countByPublished('No'),$ {Publication.executeQuery(“选择计数(已发布)来自出版物=?”,['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"])
答案 0 :(得分:2)
你试过了吗?
def count = Publication.countByPublishedAndPortfolio("No", portfolioInstance)
一种效率较低的方法是迭代投资组合的出版物集合并保留一个计数器:
def count = 0
portfolioInstance.publications.each {
if (it.published == 'No') {
count++
}
}