Java JPA@OrderBy不';t排序关系
我拥有以下实体:Java JPA@OrderBy不';t排序关系,java,spring-boot,jpa,spring-data-jpa,Java,Spring Boot,Jpa,Spring Data Jpa,我拥有以下实体: public class QuestionnaireTemplateEntity extends BaseEntity { @Id @GeneratedValue(generator="system-uuid") @GenericGenerator(name="system-uuid", strategy = "uuid") @Column(updatable = false, null
public class QuestionnaireTemplateEntity extends BaseEntity {
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(updatable = false, nullable = false)
private String id;
@OneToMany(mappedBy="questionnaireTemplate", cascade = CascadeType.ALL)
@OrderBy("subQuestionnaireOrder ASC")
private Set<SubQuestionnaireTemplateEntity> subQuestionnaires = new HashSet<>();
}
public class SubQuestionnaireTemplateEntity extends BaseEntity {
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(updatable = false, nullable = false)
private String id;
@OneToMany(mappedBy="subQuestionnaireTemplate", cascade = CascadeType.ALL)
@OrderBy("questionOrder ASC")
private Set<QuestionEntity> questions = new HashSet<>();
private Integer subQuestionnaireOrder;
}
public class QuestionEntity extends BaseEntity {
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(updatable = false, nullable = false)
private String id;
@ManyToOne
@JoinColumn(name="sub_questionnaire_template_id")
private SubQuestionnaireTemplateEntity subQuestionnaireTemplate;
private Integer questionOrder;
}
我总是使用注释'@OrderBy',而不是'@OrderColumn'。提供了一个简单的示例,说明如何在Hibernate中实现此注释以实现排序。当您使用
List
而不是Set
时,它是否有效?您也可以尝试使用SortedSet
我自己的愚蠢错误。这确实是因为布景。SortedSet和List都可以工作。如果你回答这个问题,我会把它标记为答案。谢谢你的帮助。但是,当我查找这两个注释之间的差异时,这个OrderColumn添加了一个新的列,当元素更改时,该列跟踪位置,然后位置也会更新。我不知道这是否是我想要的。将OrderBy与列表或SortedSet一起使用时,它会起作用。您已经有了一个整数属性,要使用该属性进行排序。你只需要说这应该是你的订单栏。
questionnaireTemplateRepository.findAll()