hibernate – QueryDsl orderBy列名

我刚开始使用QueryDSL并遇到了问题.是否可以使用列名来执行orderBy?我为orderBy动态路径生成找到了这个:

Generic querydsl orderBy dynamic path generation with left joins

这很棒,但在我的情况下,GUI已经发送了用于排序的列名.
例如,“USER_ID”是列名,属性是“userid”

@Entity
@Table(name="USER")
public class User implements java.io.Serializable {

private String userid;   

@Id     
@Column(name="USER_ID", unique=true, nullable=false, length=18)
public String getUserid() {
    return this.userid;
}

}

在hibernate中从列名中提取属性名是我能想到的唯一解决方案.

我很感激任何建议.

最佳答案 您可以使用PathBuilder进行动态路径构建

PathBuilder<User> pbu = new PathBuilder<>(User.class, "user");
query.orderBy(pbu.getString(orderProperty).asc());
点赞