Grails 为什么域类中的get属性只能用于Set和findAll?
在Grails 为什么域类中的get属性只能用于Set和findAll?,grails,dns,Grails,Dns,在DomainclassFooReward中,我添加了一个方法 int getQuantity() { FooRewardAssignment.countByReward(this) } GSP中的用法应该是fooRewardInstance.quantity,但启动时(在引导过程中)会出现错误,并显示未找到setter方法的消息 如果我把它改成 Set<FooRewardAssignment> getListOfFoos() { FooRewardAssignment
Domain
classFooReward
中,我添加了一个方法
int getQuantity() {
FooRewardAssignment.countByReward(this)
}
GSP中的用法应该是fooRewardInstance.quantity
,但启动时(在引导过程中)会出现错误,并显示未找到setter方法的消息
如果我把它改成
Set<FooRewardAssignment> getListOfFoos() {
FooRewardAssignment.findAllByReward(this)
}
Set getListofoos(){
FooRewardAssignment.findallbyeward(此)
}
并将GSP中的用法更改为badeRewardInstance.listofoos.size()
,它可以工作并向我显示分配特殊FooReward
的频率
知道版本1中的错误是什么吗?此问题有两种解决方法:
def getQuantity() {
FooRewardAssignment.countByReward(this)
}
static transients=['quantity']
int getQuantity(){
FooRewardAssignment.CountByWard(此)
}
有时GORM在域类中基于setters和getter方法在tabel中创建列。在这种情况下,GORM希望添加类似“quantity”的列,但出现错误是因为GORM只看到getter,而没有看到setter。所以我们可以说我们不想在数据库中创建这个列(静态瞬态),或者我们可以将返回值设置为def-但不要问我为什么GORM不考虑“def getter;”) 此问题有两种解决方法:
def getQuantity() {
FooRewardAssignment.countByReward(this)
}
static transients=['quantity']
int getQuantity(){
FooRewardAssignment.CountByWard(此)
}
有时GORM在域类中基于setters和getter方法在tabel中创建列。在这种情况下,GORM希望添加类似“quantity”的列,但出现错误是因为GORM只看到getter,而没有看到setter。所以我们可以说我们不想在数据库中创建这个列(静态瞬态),或者我们可以将返回值设置为def-但不要问我为什么GORM不考虑“def getter;”) 引导时错误的详细信息是什么?它不应该因为gsp问题而出错。引导时错误的详细信息是什么?它不应该因为gsp问题而出错。忽略“def”getter是因为Hibernate需要知道Java类型才能知道要使用的数据库类型。所以Grails忽略“def”getter,因为def是对象的别名。我的偏好是强类型并添加到瞬态中,因为它更具有自文档性。忽略“def”getter是因为Hibernate需要知道Java类型才能知道使用哪种数据库类型。所以Grails忽略“def”getter,因为def是对象的别名。我的偏好是强烈地键入它并添加到瞬态中,因为它更能自我记录。