我正在尝试从当前用户获取特定租借的列表。
控制器中的代码:
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
我做错了什么?
答案 0 :(得分:1)
通常,在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
字段。
答案 1 :(得分:-1)
findAll不仅限于调用类的实例,所以我使用executeQuery代替。 https://stackoverflow.com/a/8916483/5011228