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
我想按属性中的“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