0

EXAM と EXAM_NORMAL の 2 つのエンティティがあります。

テスト

@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クラスにEXAM_NORMALのリストを入れて永続化しようとすると(EXAM)、最初にEXAM_NORMALを永続化しようとするためエラーが発生しますが、EXAMの主キーが存在しないために欠落しているためできないことです。持続...

順序を定義する方法はありますか? またはnull、リストを設定し、永続化してから、リストを再度設定する必要がありますか?

ありがとう:)

4

1 に答える 1

1

注釈に問題があります (JPA プロバイダーが正しい順序でクエリを実行していないのはそのためです)。

「Exam_Normal」に 2 つあるのはなぜですか@Id(ところで、これは Java でクラスに名前を付ける非常に標準的な方法ではありません)。また、なぜあなたは何も持っていないのですか@GeneratedValue?多分これを最初に修正します。

これが機能しない場合は、質問を少し改善し、より多くのコード (およびエンティティを作成して永続化する部分) を表示し、書式設定を改善します。これにより、回答を得る可能性が高くなります。現在の状態では、再現するのに時間と労力がかかりすぎます。

于 2010-03-17T22:53:11.670 に答える