簡単な 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);