2015-03-14 2 views
0

У меня проблема, которая пытается сохранить сущность с @OneToMany Relatioship, и я не понимаю ее. (Извините, я не являюсь носителем английского языка).Jpa OneToMany Соотношение не беспокоиться

Эти Сущности:

@Entity 
@Table(name = "PARENT") 
@lombok.ToString 
@lombok.EqualsAndHashCode(callSuper = false, of = { "id" }) 
public class Parent extends EntityBase<Long> { 
    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PARENT_SEQ") 
    @SequenceGenerator(name = "PARENT_SEQ", sequenceName = "PARENT_SEQ") 
    @Column(name = "PARENT_ID") 
    private Long id; 

    @OneToMany(targetEntity = Child.class, cascade = CascadeType.ALL) 
    @JoinColumns({ @JoinColumn(name = "PARENT_ID") }) 
    private List<Child> children; 
} 

Платформа Entity Ребенок выглядит следующим образом:

@Entity 
@Table(name = "CHILD") 
@lombok.ToString 
@lombok.EqualsAndHashCode(callSuper = false, of = { "id" }) 
public class Child extends EntityBase<Long> { 

    private static final long serialVersionUID = 1L; 

    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CHILD_SEQ") 
    @SequenceGenerator(name = "CHILD_SEQ", sequenceName = "CHILD_SEQ") 
    @Column(name = "CHILD_ID") 
    private Long id; 
} 

Исключение я получаю:

integrity constraint violation: NOT NULL check constraint; SYS_CT_10153 table: CHILD column: PARENT_ID 

Поскольку каскад устанавливается на все, Я, однако, продолжал упорствовать, и это происходит после того, как Родитель был сохранен. Таким образом, PARENT_ID уже существует и будет установлен как внешний ключ в дочерних строках.

Таблицы выглядеть следующим образом:

PARENT 
PARENT_ID NUMBER(30,0) No 

CHILD 
CHILD_ID NUMBER(30,0) No   
PARENT_ID NUMBER(30,0) No  

Кто-нибудь идею, что я, возможно, делаю неправильно? Заранее благодарю за любую помощь.

ответ

0

Я решил. Я забыл добавить другую сторону отношений: - /. Это означает, child.setParent (родительский). Извините за время отходов ....

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