gpt4 book ai didi

java - org.hibernate.MappingException - 这个异常是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:19 25 4
gpt4 key购买 nike

我收到以下错误:

Could not determine type for: java.util.Set, at table: Ruleset, for columns: [org.hibernate.mapping.Column(ruleset)]

类片段:

@Entity
public class Ruleset implements java.io.Serializable {

@Id
@OneToOne(targetEntity = RulesetStatus.class)
private Integer id;

private Set<Rule> ruleset = new HashSet<Rule>(0);

public Ruleset() {
}


public Ruleset(Integer ID, Set<Rule> ruleset) {
this.id = ID;
this.ruleset = ruleset;
}

public Integer getId() {
return this.id;
}

public void setId(Integer id) {
this.id = id;
}

public Set<Rule> getRuleSet(){
return this.ruleset;
}

public void setRuleset(Set<Rule> ruleset) {
this.ruleset = ruleset;
}

}

我发现将规则集注释为 Transient 可以解决问题,但规则集不会持久保存到数据库中。我如何告诉 hibernate 这个字段的类型?

我对 Hibernate 非常陌生,所以我完全迷失在这里。__________________________编辑__________________________实际关系应该是@ManyToMany,因为规则可以位于许多规则集中,并且一个规则集可以有许多规则。

我将@ManyToMany注释添加到集合中,然后规则类中没有相应的集合可以映射到。我在规则类中添加了该集合,并向其添加了 @ManyToMany 注释,不,我没有错误。

这看起来正确吗?

最佳答案

默认情况下,所有字段(或属性)都映射到 JPA 中。这就是为什么您必须告诉 JPA 提供程序您的 Set 应该映射什么(一对多、多对多、@ElementCollection 等),或者将其映射为 @Transient 以告诉提供程序您不希望保留该属性。

关于java - org.hibernate.MappingException - 这个异常是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178098/

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