我正在尝试转换一个简单的Play / JPA查询以使用条件API。以下甚至不是我要转换的查询;这甚至更简单-只是尝试获得成功的开始。

我在网上找到的所有示例都希望您能够使用在类名后附加_的类,就像我看到的休眠查询对生成的SQL中的表名别名所做的一样。但是,由于没有类,因此我无法以这种方式编译代码:ExtendedHaulTrain_(但是存在ExtendedHaulTrain)

我需要在ExtendedHaulTrain类中添加某种注释吗?也许我还没有足够深入地阅读过,但是到目前为止,我发现的示例并未解决附加了下划线的类的问题。

这是我的代码未能在最后一行上编译,特别是在ExtendedHaulTrain_上

Query query = JPA.em().createQuery("select DISTINCT(x.trnType) from ExtendedHaulTrain x");
List<String> trainTypes = query.getResultList();

//as criteria query
CriteriaBuilder cb = JPA.em().getCriteriaBuilder();
CriteriaQuery<ExtendedHaulTrain> q = cb.createQuery(ExtendedHaulTrain.class);
Root<ExtendedHaulTrain> xhtRoot = q.from(ExtendedHaulTrain.class);
q.select(xhtRoot.get(ExtendedHaulTrain_.trnType)).distinct(true);

最佳答案

代替MetaModel类(它们以'_'结尾),您始终可以使用字符串形式的属性名称作为参考。

q.select(xhtRoot.get("trynType")).distinct(true);

08-27 15:41