Java 休眠一对多级联所有不保存父项中的子id

Java 休眠一对多级联所有不保存父项中的子id,java,hibernate,cascade,Java,Hibernate,Cascade,这可能是重复的。但我找不到与我的问题相关的适当链接。可能是我的搜索太糟糕了。因此,希望有一个好的答案或链接到任何有用的解决方案。这是我的配置。java public class Configuration implements java.io.Serializable { private Integer configurationId; private String configurationName; private Set<ConfigFields>

这可能是重复的。但我找不到与我的问题相关的适当链接。可能是我的搜索太糟糕了。因此,希望有一个好的答案或链接到任何有用的解决方案。这是我的配置。java

public class Configuration  implements java.io.Serializable {

    private Integer configurationId;
    private String configurationName;
    private Set<ConfigFields> ConfigFieldses = new HashSet<ConfigFields>(0);

    //getter and setter

    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="configuration")
    public Set<ConfigFields> getConfigFieldses() {
        return this.ConfigFieldses;
    }

    public void setConfigFieldses(Set<ConfigFields> ConfigFieldses) {
        this.ConfigFieldses = ConfigFieldses;
    }
}
public class ConfigFields  implements java.io.Serializable {
    private Integer configFieldId;
    private Configuration configuration;
    private String configFieldName;

    //getter and setter

    @XmlTransient
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ConfigurationId")
    public Configuration getConfiguration() {
        return this.configuration;
    }

    public void setConfiguration(Configuration configuration) {
        this.configuration = configuration;
    }
}
这是我插入配置的代码

Configuration configuration=new Configuration();
configuration.setConfigurationName(configName);
List<ConfigFields> configFieldsList=new ArrayList<ConfigFields>();

for(int i=0;i<fieldLength;i++) {
    ConfigFields configField=new ConfigFields();
//  configField.setConfiguration(configuration);

    String stringI=Integer.toString(i);

    if(i<fieldLength-1) {
        configField.setConfigFieldName(ENGINE_FORM+stringI);
    } else {
        configField.setConfigFieldName(ENGINE_TABLE+stringI);
    }
    configFieldsList.add(configField);
}

Set<ConfigFields> configFields-new HashSet<ConfigFields>(configFieldsList);

configuration.setConfigFieldses(configFields);

configurationService.insert(configuration);
Configuration配置=新配置();
configuration.setConfigurationName(configName);
List configFieldsList=new ArrayList();

对于(int i=0;i是的,您所保留的是单向关系。但是,由于您希望hibernate保持双向关系,您需要将配置对象设置为configField

谢谢。它成功了。有一个疑问,如果我想从其他表中删除一个配置和其他行,我是否只需要通过configuration Id?注释
cascade=CascadeType.ALL
on
Set
是否有效?如果删除配置,所有配置字段条目也将被删除,因为您使用的是cascade ALL