2010-03-17 3 views
0

У меня есть два объекта: EXAM и EXAM_NORMAL.Как сохранить на заказ

ЭКЗАМЕН

@Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private Long id; 
    private String name; 
    private String codeName; 
    @Enumerated(EnumType.STRING) 
    private ExamType examType; 
    @ManyToOne 
    private Category category; 
    @OneToMany(mappedBy="id",cascade=CascadeType.PERSIST) 
    @OrderBy("id") 
    private List<Exam_Normal> exam_Normal; 

EXAM_NORMAL

@Id 
    private Long item; 
    @Id 
    @ManyToOne 
    private Exam id; 
    @Enumerated(EnumType.STRING) 
    private Gender gender; 
    private Integer age_month_from; 
    private Integer age_month_to; 

Проблема заключается в том, что если я ставлю список EXAM_NORMAL в классе ЭКЗАМЕН, если я пытаюсь упорствовать (ЭКЗАМЕН) Я получаю сообщение об ошибке, потому что он пытается сначала перенести EXAM_NORMAL, но это невозможно, потому что первичный ключ EXAM отсутствует, потому что он не сохраняется ...

Есть ли способ для определения порядка? Или я должен установить null список, а затем снова установить список?

спасибо :)

ответ

1

Существует что-то не так с вашими аннотациями (поэтому провайдер JPA не выполняет запросы в правильном порядке).

Почему у вас есть два @Id в «Exam_Normal» (что BTW не очень стандартный способ назвать класс в Java)? Кроме того, почему у вас нет @GeneratedValue? Возможно, сначала исправьте это.

Если это не сработает, немного улучшите свой вопрос, покажите больше кода (а также часть, в которой вы создаете сущности для сохранения), улучшите форматирование. Это увеличит ваши шансы получить ответы. В текущем состоянии для воспроизведения потребуется слишком много времени/усилий.

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