2017-06-27 1 views
1

この問題に関する他の質問を試してみましたが、ロジックを私のケースに適用できませんでした。 私はこの表から選択しようとしています:HQLエラー - 参加予定のパス

@Entity 
public class LabelStatistics { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int ID; 

    @Enumerated(EnumType.STRING) 
    private AnalysisType type; 

    private String labelId; 
    private String hexLabelId; 
    private Timestamp timestamp; 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) 
    private List<LabelStatisticsItem> results; 

私は次の文を実行しようとしています:

@Query(value = "SELECT s1.labelId, s1.type, s1.timestamp " 
     + "FROM LabelStatistics s1 " 
     + "INNER JOIN LabelStatistics s2 on s1.labelId = s2.labelId and s1.type = s2.type and s1.timestamp < s2.timestamp") 
List<Object[]> findLatestStatisticsEntries(); 

私はこのエラーを取得しておいてください。

org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join! 

誰かが上の説明してもらえこれを解決する方法は? 最高のお礼

答えて

5

私はジョインがリレーションが設定されているエンティティ間でのみ許可されているためです。

はWHERE代わり

SELECT s1.labelId, s1.type, s1.timestamp 
FROM LabelStatistics s1, LabelStatistics s2 
WHERE s1.labelId = s2.labelId and s1.type = s2.type and s1.timestamp < s2.timestamp 
使用してみてください
関連する問題