我的數據庫模式有兩個表: - Rule Table
和Rule Scope
表。
規則表中的列(rule_id
主鍵,.....)和規則範圍列(rule_id
外鍵,Scope_id
(不能自動生成的ID,可以重複用於不同RULE_ID)
規則範圍的主鍵的組合rule_id
以及Scope_id
在Hibernate中使用mappedBy時持久子實體
我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;
我有以下問題: -
當我試圖保存規則,但它不是堅持子實體。當持續違反外鍵約束的規則範圍時,規則ID爲0。但是,當我使用@JoinColumn它正在工作。請幫助我堅持Rule Scope
,同時堅持Rule
並使用mappedBy
。
您是否嘗試過:@OneToMany(的mappedBy =「rule」,fetch = FetchType.LAZY) private設置 ruleScope = new HashSet (); –
2014-12-01 16:13:51
它給出了同樣的例外 – 2014-12-01 16:55:19
我目前使用OpenJPA,並不能很有幫助。我會嘗試ManyToMany,PrimaryKeyJoinColum或JOIN策略....您可以稍後再查看,然後將其更改回來。 – 2014-12-01 22:00:52