2013-12-12 4 views
-1

У меня есть два объекта, файл и комментарий:Как заказать по количеству родственного лица

@Entity 
@Table(name = "FILE") 
@SuppressWarnings("serial") 
@XmlRootElement 
public class File implements Serializable { 

    (...) 
    private Set<Commentary> commentaries = new HashSet<Commentary>(); 

    (...) 
    @OneToMany(mappedBy = "file") 
    public Set<Commentary> getCommentaries() { 
     return commentaries; 
    } 
} 

@Entity 
@Table(name = "COMMENTARY") 
@SuppressWarnings("serial") 
public class Commentary implements Serializable { 

(...) 
private File file; 

(...) 
@ManyToOne 
@JoinColumn(name = "FILE_ID") 
public File getFile() { 
    return file; 
} 

Я хочу, чтобы сделать запрос HQL, чтобы получить файлы, заказав их по количеству комментариев каждый из них связаны. Я пробовал:

SELECT f FROM FILE f WHERE f.name LIKE '%example%' ORDER BY COUNT(f.commentaries) 

не повезло. Как я могу сделать это правильно с помощью HQL?

+1

Какая ошибка вы наблюдаете? –

ответ

0

Я нашел ответ. Правильный запрос HQL:

SELECT f FROM FILE f WHERE f.name LIKE '%example%' ORDER BY size(f.commentaries) 
0

Попробуйте

SELECT f FROM FILE f WHERE f.name LIKE '%example%' ORDER BY COUNT(commentaries) 
Смежные вопросы