2015-05-01 29 views
1

標題說明了一切:是否可以在使用JPA標準API構建的查詢中使用命名查詢?沿(簡單的例子)線的東西:具有命名查詢的JPA標準API

@Entity 
@NamedQuery(name = "complexFooQuery", query = "FROM Foo where ....") 
class Foo { 
    ////.... 
} 

List<Foo> getFoo() { 
    CriteriaQuery<Foo> cq = em.createQuery(Foo.class); 
    cq.select(<somehow specify complex foo named query>); 
    return em.createQuery(cq).getResultList(); 
} 

回答

1

號 標準查詢動態構建的(這樣一來就給類型安全處理)......如果只是然後傾倒一些命名查詢就沒有類型安全處理。另外,對於嚴格的JPQL,子查詢在SELECT子句中是非法的(並且JPQL查詢也以「SELECT {alias}」開頭)FWDW

+1

您仍然可以使用字符串作爲屬性名稱嗎?在這種情況下,類型安全並不明確。 –