我需要按如下顺序进行一对多排序:
例如:
category | sub category |
---|---|
1 | 1 |
1 | 2 |
2 | 1 |
2 | 2 |
2 | 3 |
3 | 1 |
数据模型:
Java代码/映射:
类别类别
package br.com.bank.adapter.repository.entity;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.HashSet;
import java.util.Set;
@Entity
@Getter
@Setter
@Table(name = "category")
public class CategoryEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "update_at")
private LocalDateTime update;
@OneToMany(mappedBy = "category", orphanRemoval = true, cascade = CascadeType.ALL)
private Set<SubCategoryEntity> subCategoryEntity = new HashSet<>();
}
Sub类别类别
package br.com.bank.adapter.repository.entity;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.time.LocalDateTime;
@Entity
@Getter
@Setter
@Table(name = "sub_category")
public class SubCategoryEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "update_at")
private LocalDateTime update;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "category_id", nullable = false)
private CategoryEntity category;
}
使用上面的代码,我得到以下结果:
category | sub category |
---|---|
1 | 1 |
1 | 2 |
2 | 3 |
2 | 4 |
2 | 5 |
3 | 6 |