调用特定域的 HQL 查询是否应该特定于该域?

should the HQL query that is called of a specific domain be specific to that domain?

grails 文档为 domain.executeQuery() 方法提供了以下示例。

  Account.executeQuery("select distinct a.number from Account a")

在另一个地方,我看到了下面的命令。

Registration.executeQuery(
            'select i.id from SaleInvoice i '
            + 'left join i.entries ie '
            + 'left join ie.discount d '
            + 'left join d.discountCode dc '
            );

HQL 查询似乎不需要特定于我们正在调用其 executeQuery() 方法的域 class。如果是这样,那么它似乎是任意的,我们可以调用任意域 class 的 executeQuery 方法来执行任意 HQL 查询。如果我误解了 executeQuery() 的目的,请消除我的误解。谢谢!

你叫executeQuery的class(还有executeUpdatewithTransactionwithNewTransactionwithSessionwithNewSession ) 对方法 运行 没有影响。这些方法可能应该添加到 Gorm class 中,但却被添加到所有域 classes.