grails - org.hibernate.QueryException(无法解析属性)

时间:2017-05-03 07:27:53

标签: grails hql

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

控制器中的代码:

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

我做错了什么?

2 个答案:

答案 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