Как сохранить в порядке - PullRequest
0 голосов
/ 17 марта 2010

У меня есть две сущности: 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, если я пытаюсь сохранить (EXAM), я получаю ошибку, потому что он пытается сохранить сначала EXAM_NORMAL, но не может, потому что первичный ключ EXAM отсутствует, потому что он не сохраняется ...

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

спасибо:)

1 Ответ

1 голос
/ 18 марта 2010

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

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

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

...