【发布时间】:2020-12-08 13:25:25
【问题描述】:
在我的 Spring Boot 应用程序中,有一个具有 sefl-reference 的模型“Item”。我想实现按字段 sortOrder 排序,但我不明白如何为 CRUD 操作实现它。 例如,如何在将我的实体保存到存储库之前获取 sortOrder 的值,以及如何在更新实体后重新计算 sortOrder。任何帮助将不胜感激!谢谢!
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "item")
public class Item {
@Id
@JsonFormat(shape = JsonFormat.Shape.STRING)
@SequenceGenerator(name = "itemSeq", sequenceName = "item_id_seq", allocationSize = 50)
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "itemSeq")
private Long id;
@NotBlank
@Column(name = "name")
private String name;
@Column(name = "description")
private String description;
@Column(name = "sort_order")
private String sortOrder;
@Column(name = "is_active")
private Boolean isActive;
@ManyToOne
@JoinColumn(name = "parent_id")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@JsonIgnoreProperties({"name", "description", "sortOrder", "isActive", "parent", "children"})
private Item parent;
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@Where(clause = "is_active = true")
@Fetch(FetchMode.SUBSELECT)
@OrderBy("sort_order ASC")
private List<Item> children = new ArrayList<>();
}
【问题讨论】:
标签: java hibernate spring-data-jpa spring-data