Poté, co jsem se s tím posledních pár hodin potýkal, konečně to funguje v rámci mého projektu. Udělal jsem toto:
ControlRule
@OneToMany(fetch = FetchType.LAZY, mappedBy = "controlRuleAttribPK.controlRuleId")
@Cascade(CascadeType.ALL)
private List<ControlRuleAttrib> controlRuleAttribs;
V podstatě ukazuje, že kolekce by měla používat controlRuleId ze složeného primárního klíče. Zatím to funguje skvěle!