JPA/Hibernate 带有布尔行的@OrderBy 注释

JPA/Hibernate @OrderBy annotation with boolean row

我想按属性中的“pk”行排序。但它有一个布尔数据。具有 pk=true 的属性应该放在第一位。我就是不会写@OrderBy("pk=true")。我怎样才能按这一行排序?

public class Entity {

//here are some rows;

@OneToMany
    @JoinColumn(name = "id")
    @OrderBy("pk", "firstName")
    private Collection<Attributes> attributes;
}

public class Attributes {

    @Id
    private Long id;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @Column(name = "pk")
    private Boolean pk;
}

好的,从您提供的示例中您已经知道如何按字段 pk 进行排序。只是你想要相反的顺序。

为此你会写

@OrderBy("pk desc")

另见 https://www.logicbig.com/tutorials/java-ee-tutorial/jpa/order-by-annotation.html

它会先排序false,因为在数据库中true和false分别表示为1和0