2014-11-17 4 views
0

У меня есть простой вопрос относительно привязки @OneToMany с автоматически созданными идентификаторами - соответствующие части кода приведены ниже. Проблема, с которой я сталкиваюсь, заключается в том, что генерируемый пользовательский идентификатор не добавляется к экземпляру sampleRequest в каждом из моих отклонений. Он пытается вставить null в db, и я не разрешаю null, поэтому он терпит неудачу.Hibernate @ManyToOne с настраиваемыми идентификаторами

Спасибо!

@Entity 
@Table(name="SAMPLE_REQUESTS") 
public class SampleRequest implements Serializable { 

    @Id 
    @Column(name="REQUEST_ID") 
    @GenericGenerator(name="seq_id", strategy="com.tracker.services.SampleRequestSequenceGenerator") 
    @GeneratedValue(generator="seq_id") 
    private String requestId; 

    @OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER, mappedBy = "sampleRequest") //mappedBy signals hibernate that the key for the relationship is on the other side 
    private List<ProcessDeviation> deviations; 

    .... 
} 


@Entity 
@Table(name="PROCESS_DEVIATIONS") 
public class ProcessDeviation implements Serializable { 

    @Id 
    @GeneratedValue 
    @Column(name="DEVIATION_ID") 
    private int deviationId; 

    @ManyToOne(cascade = CascadeType.ALL) 
    @JoinColumn(name="REQUEST_ID") 
    private SampleRequest sampleRequest; 

    ... 
} 


SAMPLE_REQUESTS columns: REQUEST_ID, COMMENTS, etc. 
PROCESS_DEVIATIONS columns: DEVIATION_ID, REQUEST_ID, COMMENTS, etc. 

ответ

0

необходимо сохранить sampleRequest и назначить его id в ProcessDeviation перед сохранением.