QueryDSL为我们创建了一些不错的元模型Q类,这些Q类的字段在任何可能的情况下都是特定类型的路径。例如,如果您的User类中具有年龄的Integer字段,则该字段在QUser类中将具有NumberPath类型。
假设我正在使用QueryDSL建立类似的查询
user.from(user).where(user.age.eq(30))
我希望能够获取QClass中存在的user.age的路径类型-即NumberPath。
这可能吗?
您是否尝试简单地呼叫user.age.getClass()
?
user.age instanceof NumerClass
也应该起作用。
如果您的裸名为String,则可以使用反射:
user.getClass().getDeclaredField("age").getType()
应返回NumberPatch.class
。有点脏,但应该可以。
com.querydsl.core.types.dsl.Expressions#stringPath(QUser.user, "age")
使用Querydsl 4.2.1测试