2012-05-07 30 views
0

我有一個JPA對象:爲什麼不是這個JPA查詢返回我的特定類的列表?

@Entity 
@Table(name="WF_GROUP") 
public class Group { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 
    private String groupName; 
    private long parentId; 

/* ... */ 

} 

我有一個GroupDAO用這種方法:

public List<Group> getAllGroups() { 
    List<Group> groups = new ArrayList<Group>(); 
    String query = "select * from WF_GROUP"; 
    Query q = getEntityManager().createNativeQuery(query); 
    groups.addAll(q.getResultList()); 
    return groups; 
} 

的問題是q.getResultList()返回Object類型的結果列表比包含對象數組爲每個屬性。

爲什麼q.getResultList()返回一個Group對象列表?

謝謝! Rob

回答

3

因爲您不指定本機查詢應該返回哪個類。看看其他createNativeQuery方法,並帶有其他參數。

請注意,使用JPA的關鍵是使用對象而不是數據庫表。 JPQL就是這樣的。您應該使用以下代碼:

String query = "select group from Group group"; // this is JPQL 
TypedQuery<Group> q = getEntityManager().createQuery(query, Group.class); 
groups.addAll(q.getResultList()); 
相關問題