我刚开始使用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中从列名中提取属性名是我能想到的唯一解决方案。
我很感激任何建议。
答案 0 :(得分:2)
您可以使用PathBuilder
进行动态路径构建
PathBuilder<User> pbu = new PathBuilder<>(User.class, "user");
query.orderBy(pbu.getString(orderProperty).asc());