QueryDsl orderBy列名

时间:2014-04-03 15:30:39

标签: hibernate jpa querydsl

我刚开始使用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中从列名中提取属性名是我能想到的唯一解决方案。

我很感激任何建议。

1 个答案:

答案 0 :(得分:2)

您可以使用PathBuilder进行动态路径构建

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