gpt4 book ai didi

java - hibernate 一对多级联所有不在 parent 中保存 child ID

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:00 25 4
gpt4 key购买 nike

这可能是重复的。但是我找不到我的问题的正确链接。可能是我的搜索太糟糕了。所以希望得到一个好的答案或链接到任何有用的解决方案。这是我的Configuration.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;
}
}

ConfigFields.java

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 表中插入一个配置,在 ConfigFields 表中插入一组 configFields。 ConfigFields 表具有应该来自配置表的配置 ID。对于一组配置字段,配置 ID 将相同(正如您可以从代码中猜测的那样)。

以上代码有效并保存到两个表中。但是当我检查 ConfigFields 表时,configurationId 为空。我没有设置 Id。为什么?如您所见,我没有在每个 ConfigFields 对象列表中设置配置对象。我需要设置吗?

如何解决?

最佳答案

是的,你坚持的是单向关系。但是由于您希望 hibernate 保持双向关系,因此您需要将配置对象设置为 configField

关于java - hibernate 一对多级联所有不在 parent 中保存 child ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21596741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com