Data binding Grails数据绑定

Data binding Grails数据绑定,data-binding,grails,groovy,Data Binding,Grails,Groovy,我需要将请求参数绑定到以下Java类getter和setter的实例: public class ShippingHouse { private String name; private String description; private List<ShippingRule> shippingRules = new ArrayList<ShippingRule>(); } public class ShippingRule {

我需要将请求参数绑定到以下Java类getter和setter的实例:

public class ShippingHouse {

    private String name;
    private String description;
    private List<ShippingRule> shippingRules = new ArrayList<ShippingRule>();  
}

public class ShippingRule {

    private ShippingHouse shippingHouse;
    private String name
}

但这似乎不会在每个ShippingRule中设置对所属ShippingHouse的引用。有没有一种方法可以自动绑定它,或者我必须自己编写代码?

如果您想实现两个类之间的1:N关系,应该使用正确的grails方法。大概是这样的:

class ShippingHouse {
    String name
    String description
    static hasMany = [shippingRules: ShippingRule]
}

class ShippingRule {
    String name
    static belongsTo = [shippingHouse: ShippingHouse]
}

请注意,分号是无用的,类字段上的私有声明是隐式的。

如果要在两个类之间实现1:N关系,应该使用正确的grails方法。大概是这样的:

class ShippingHouse {
    String name
    String description
    static hasMany = [shippingRules: ShippingRule]
}

class ShippingRule {
    String name
    static belongsTo = [shippingHouse: ShippingHouse]
}
请注意分号是无用的,类字段的私有声明是隐式的。

Don

您将需要编写代码来使用BindUsing或其他方法自己完成。活页夹不应该也不应该假设从父对象到子对象的任何反向引用。如果这些是GORM实体并且关系是显式的,那就不同了,但是在您的情况下,绑定器不应该假设ShippingRule类中的shippingHouse属性与shippingHouse类中的shippingRules属性有任何关系

还要注意lucke84说你的隐私是隐式的。如果要删除它们,请确保您理解这意味着什么。如果删除它们,编译器将为这些属性生成公共getter和setter方法,这可能是您想要的,也可能不是您想要的

您将需要编写代码来使用BindUsing或其他方法自己完成。活页夹不应该也不应该假设从父对象到子对象的任何反向引用。如果这些是GORM实体并且关系是显式的,那就不同了,但是在您的情况下,绑定器不应该假设ShippingRule类中的shippingHouse属性与shippingHouse类中的shippingRules属性有任何关系


还要注意lucke84说你的隐私是隐式的。如果要删除它们,请确保您理解这意味着什么。如果您删除它们,编译器将为这些属性生成公共getter和setter方法,这可能是您想要的,也可能不是您想要的。

我不能像hasMany和belongsTo那样使用GORM概念,因为类是Java类。我不能像hasMany和belongsTo那样使用GORM概念,因为类是Java类