2014-08-30 77 views
3

這裏是我的代碼:如何返回JPA中最大集合的大小?

@Entity 
@Table("Books") 
public class BookImp implements Book { 

@Id 
@GeneratedValue 
@Column(name = "id") 
private Long id; 

@ElementCollection 
private Set<String> authors = new HashSet<String>(); 

// getters + constructors 

} 

我想創建一個SQL查詢將返回最偉大的作家集合的大小。我怎樣才能做到這一點?

編輯:對於那些使用for循環,這就是我想要的答案看起來像誰建議:

@Override 
public int getLargestAuthors() { 
return entityManager.createQuery("select b.authors from BookImpl b where b.authors.size ...").getSingleResult().size(); 
} 

回答

3

不是MySQL的嚮導,但你不能像這樣做?

select MAX(b.authors.size) from BookImpl b 
+0

雖然你不是一個mysql嚮導,但你的解決方案已經奏效!謝謝! – Vladislav 2014-08-30 10:40:05

2

SELECT m FROM BookImp m where size(m.authors) = (select max(size(c.authors)) FROM BookImp c)

這將返回一個或多個BookImp的具有最大尺寸。

相關問題