Java 如何维持秩序

Java 如何维持秩序,java,jpa,persist,Java,Jpa,Persist,我有两个实体:考试和考试正常 考试 问题是,如果我在考试课上放了一个正常考试的列表,如果我试图坚持(考试),我会得到一个错误,因为它试图先坚持正常考试,但它不能,因为考试的主键丢失了,因为它没有坚持 有没有办法定义订单?或者我应该将列表设置为null并保持,然后再次设置列表 谢谢:)您的注释有问题(这就是JPA提供程序没有按正确顺序执行查询的原因) 为什么在“Exam_Normal”中有两个@Id(顺便说一句,这不是Java中命名类的标准方法)?还有,为什么没有任何@GeneratedValue

我有两个实体:考试和考试正常

考试

问题是,如果我在考试课上放了一个正常考试的列表,如果我试图坚持(考试),我会得到一个错误,因为它试图先坚持正常考试,但它不能,因为考试的主键丢失了,因为它没有坚持

有没有办法定义订单?或者我应该将列表设置为
null
并保持,然后再次设置列表


谢谢:)

您的注释有问题(这就是JPA提供程序没有按正确顺序执行查询的原因)

为什么在“Exam_Normal”中有两个
@Id
(顺便说一句,这不是Java中命名类的标准方法)?还有,为什么没有任何
@GeneratedValue
?也许先把它修好

如果这不起作用,请稍微改进您的问题,显示更多代码(以及创建实体的部分),改进格式。这会增加你得到答案的机会。在它的当前状态下,复制会花费太多的时间/精力

@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;
 @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;