Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有Grails域对象的禁止方法名列表?_Grails_Grails Domain Class - Fatal编程技术网

是否有Grails域对象的禁止方法名列表?

是否有Grails域对象的禁止方法名列表?,grails,grails-domain-class,Grails,Grails Domain Class,当我向域对象添加一个helper方法时,我经常会在编译时出错,因为找不到解析为x的属性。对于名为getX、setX的方法,以及最近的isX,似乎都会发生这种情况。是否有我应该避免使用的姓名表列表?有没有一种方法可以对这些方法进行注释或以其他方式标记,这样Grails就不会将它们与自动属性混淆?我不知道通用列表-它太多样化了。Groovy和Grails的不同部分添加了约定方法: 关于属性getter/setter的Groovy约定是非常基本的。不可能有一个getX方法而没有对x属性的读取权限。 和

当我向域对象添加一个helper方法时,我经常会在编译时出错,因为找不到解析为x的属性。对于名为getX、setX的方法,以及最近的isX,似乎都会发生这种情况。是否有我应该避免使用的姓名表列表?有没有一种方法可以对这些方法进行注释或以其他方式标记,这样Grails就不会将它们与自动属性混淆?

我不知道通用列表-它太多样化了。Groovy和Grails的不同部分添加了约定方法:

关于属性getter/setter的Groovy约定是非常基本的。不可能有一个getX方法而没有对x属性的读取权限。 和特定于Grails域类; 等等 Groovy关于属性getter/setter的约定,包括$staticMethodMissing、getProperty、properties等; Groovy添加了许多as方法,比如asInteger; 不同的插件可以注入更多的约定方法。
要访问声明的字段,而不是getter/setter,请使用。

我不知道公共列表-它太多样化了。Groovy和Grails的不同部分添加了约定方法:

关于属性getter/setter的Groovy约定是非常基本的。不可能有一个getX方法而没有对x属性的读取权限。 和特定于Grails域类; 等等 Groovy关于属性getter/setter的约定,包括$staticMethodMissing、getProperty、properties等; Groovy添加了许多as方法,比如asInteger; 不同的插件可以注入更多的约定方法。
要访问声明的字段,而不是getter/setter,请使用。

Grails自动检测属性并假设它们是持久的。Groovy中的公共字段在引擎盖下创建一个getter和setter,因此假定getter与持久字段相关联

但是,如果您想要一个以“get”或“is”开头但不是持久字段的getter的helper方法,那么有两个选项。一种是使用瞬态列表-参见

另一个选项是将返回值声明为def。因为def不是对象的别名,所以Hibernate无法持久化它,因为它不知道使用什么数据类型,所以被忽略


我更喜欢瞬态列表,因为我更喜欢使用自文档化方法,在这些方法中,可以清楚地看到它们的作用、接受的参数类型以及返回的参数。

Grails自动检测属性并假设它们是持久的。Groovy中的公共字段在引擎盖下创建一个getter和setter,因此假定getter与持久字段相关联

但是,如果您想要一个以“get”或“is”开头但不是持久字段的getter的helper方法,那么有两个选项。一种是使用瞬态列表-参见

另一个选项是将返回值声明为def。因为def不是对象的别名,所以Hibernate无法持久化它,因为它不知道使用什么数据类型,所以被忽略


我更喜欢瞬态列表,因为我更喜欢使用自记录方法,在这些方法中可以清楚地看到它们的作用、接受的参数类型以及返回的参数。

据我所知,您可以使用瞬态

static transients = ['feildName']

据我所知,你的问题,你可以使用瞬态

static transients = ['feildName']