PostgreSQL有没有办法将NULL字段中值的行排序到所选表的末尾?
喜欢:
SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
Run Code Online (Sandbox Code Playgroud) 我有以下类描述片段:
...
@Column(name = "invalidate_token_date")
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime invalidateTokenDate;
....
Run Code Online (Sandbox Code Playgroud)
此代码不起作用,因为@Temporal不支持LocalDateTime.我看到的建议如何使用LocalDateTime从乔达时间,但我使用Java 8.
请给我一些建议.
PS
这是我目前的JPA依赖:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我的问题是空值必须是最后一个 order by 语句。我的代码截图如下。我使用 javax 持久性标准构建器。我的查询很复杂。
import javax.persistence.criteria.CriteriaBuilder;
public Predicate getSomePredicate() {
Predicate predicate = cb.conjunction();....
...predicate.getExpressions().add(cb.and(cb.or(cb.and(v1, v2), cb.and(s1, s2))));
EOrderByType orderType = EOrderByType.values()[orderBy]
;
switch (orderType) {
case PRICE: cq.where(predicate).orderBy(cb.asc(root.get("price")));
break;
case PRICE_HIGH_TO_LOW: cq.where(predicate).orderBy(cb.desc(root.get("price")));
break;
case CONSUPTION: cq.where(predicate).orderBy(cb.desc(root.get("consume")));
break;
default:
break;
}
return cq.getRestriction();
}
Run Code Online (Sandbox Code Playgroud)
如何使用标准构建器按价格 null 最后实现订单?
criteria ×1
date ×1
hibernate ×1
java ×1
java-8 ×1
jpa ×1
null ×1
postgresql ×1
sql ×1
sql-order-by ×1