在实体Java Spring中实现了一个一对多列表



我有以下实体,我想按字段TypeValues->排序typeValuesList的列表;按降序排列的名称(字符串(。只有当描述等于"0"时,我才有条件地这样做;1〃;例如我尝试了@OrderBy注释,但这似乎在条件下不起作用,在这种情况下,我有什么选择,我可以使用查询吗?

@Entity
@Table(name="DEVICE")
public class Device extends AbstractEntity {
@Column(name = "DESCRIPTION", length = 300)
@Size(max = 150)
private String description;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="TYPE_ID", nullable = false)
private List<TypeValues> typeValuesList = new ArrayList<>();
}

@Entity
@Table(name="TYPE_VALUES")
public class TypeValues extends AbstractEntity{
@Column(name = "NAME", length = 50)
@Size(max = 25)
private String name;
}

由于您希望有条件地执行此操作,因此最好的解决方案是在检索时根据需要对您的集合进行排序

在检索设备后的调用方法中:

Collections.sort(device.getTypeValuesList(), Comparator.comparing(TypeValues::getName)); 

最新更新