1

Я хотел создать отношение Hibernate OneToMany, где У родителя есть составной первичный ключ, а у ребенка есть первичный ключ (сгенерированный спящий режим). Ниже мой рабочий пример кода:Hibernate Однонаправленный OneToMany с составным ключом

class Parent{ 

    @EmbeddedId 
    private ParentPk parentPk; 

    @OneToMany(mappedBy="parent") 
    private List<ChildType1>; 

    @OneToMany(mappedBy="parent") 
    private List<ChildType2>; 

    @OneToMany(mappedBy="parent") 
    private List<ChildType3>; 

    //--setters and getters 
} 

@Embeddable 
public class ParentPk { 

    private Long parentId; 

    private BigDecimal version; 

    //..setters and getters 
} 

class ChildType1{ 
    @Id 
    private Long childId; 

    @ManyToOne(cascade = CascadeType.ALL) 
    @JoinColumns({ @JoinColumn(name = "parentId"), 
      @JoinColumn(name = "version") }) 
    private Parent parent; 

    //..other fields and setters and getters 
} 

//--ChildType2 and ChildType3 like above 

Но теперь я хотел моделировать выше как OneToMany однонаправленной связи, то есть, ребенок не должен ссылаться на родителя (требуется опустить родительский экземпляр дочернего класса). Является ли это возможным?

+2

Да, это возможно. Поместите аннотацию JoinColumns в список в родительском классе. –

ответ

2

Пример подход:

@Entity 
class Parent { 
    @EmbeddedId 
    private ParentPk parentPk; 

    @OneToMany 
    @JoinColumns({ 
     @JoinColumn(name = "parentId", referencedColumnName = "parentId"), 
     @JoinColumn(name = "version", referencedColumnName = "version") 
    }) 
    private List<ChildType1> children1; 

    // exactly the same annotations as for children1 
    private List<ChildType2> children2; 

    // exactly the same annotations as for children1 
    private List<ChildType3> children3; 

    //..other fields and setters and getters 
} 

@Entity 
class ChildType1 { 
    @Id 
    private Long childId; 

    //..other fields and setters and getters 
} 

//--ChildType2 and ChildType3 like above 
+0

Perfect.Thanks ..! – Rams

Смежные вопросы