我正在尝试从当前用户获取特定租金的列表。

Controller 中的代码:

def index() {
if (isLoggedIn()) {
    String username = getPrincipal().username

    def accountInstance = Account.findByUsername(username)
    def rentalInstanceList = Rental.findAll("from Rental as r where r.account_id=:accountid", [accountid: accountInstance.id])
    }
}

account_id是一个外键。

运行后出现错误:
could not resolve property: account_id of: ers.Rental

我究竟做错了什么?

最佳答案

通常,在HQL中,您必须使用域类中定义的字段名称。因此,您的查询应类似于:

def list = Rental.findAll("from Rental where accountId=:accountid", [accountid: accountInstance.id])

要么
def list = Rental.findAllByAccount accountInstance

甚至
def list = Rental.findAllByAccount getPrincipal()

如果getPrincipal()的返回类型具有id字段。

09-03 19:13