0

私のDBスキーマには2つのテーブルがあります:-Rule TableRule Scopeテーブル。
ルール テーブルの列 (rule_id主キー、.....) およびルール スコープの列 (rule_id外部キー、Scope_id(自動生成された ID ではなく、異なる rule_id に対して繰り返すことができます) )
ルール スコープの主キーは、rule_idとの組み合わせですScope_id

私のRULEエンティティ

@Entity
@Table(name = "RULE")
public class Rule implements IEntity {

@Column(name = "RULE_ID")
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int ruleId;

@OneToMany(fetch=FetchType.LAZY,mappedBy="rule")
private Set<RuleScope> ruleScope=new HashSet<RuleScope>();  

Rule Scope実在物:-

@Entity
@Table(name = "RULE_SCOPE")
public class RuleScope {

@Embeddable
public static class Id implements Serializable{
    @Column(name = "RULE_ID")
    private int ruleId;
    @Column(name = "SCOPE_ID")
    private int scopeId;
}

@EmbeddedId
private Id id = new Id();

@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "RULE_ID", insertable = false, updatable = false)
private Rule rule; 

次の質問があります:-
Rule を保存しようとしているのに、子エンティティが永続化されていない場合。外部キー制約に違反しているルール スコープを永続化すると、ルール ID に 0 が与えられます。しかし、 @JoinColumn を使用すると機能します。を永続化して使用しRule Scopeながら永続化するのを手伝ってください。RulemappedBy

4

1 に答える 1