2010-09-02 22 views
1

我需要一個JPQL結果的結果分配給一個簡單的類java對象如何將JPQL查詢分配給簡單的Java對象?

我有這樣的事情

class myObject() { 
@id 
private Long id; 
private String Name; 
private String description; 
... 
//getters and setters 
} 

我需要以某種方式來存儲這些SQL查詢的結果,例如

//可能是anytable SELECT DISTINCT c.table_id,c.name,NULL作爲起價anyTable

如何做到這一點的JPQL,然後把結果賦給我的對象?

+0

你應該真的嘗試用簡單的英語來解釋你正在嘗試做什麼(以及你正在顯示的代碼片段的質量)。 – 2010-09-02 21:26:52

回答

1

這個問題是非常不清楚的。所以這裏是一個模糊的答案:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyPu"); 
EntityManager em = emf.createEntityManager();  
Query q = em.createQuery("select f.id, f.name from Foo f"); 
List<Object[]> foos = (List<Object([]>)q.getResultList(); 

MyObject o = new MyObject(); 
o.setFoos(foos); 
+0

對不起,你得到它,那是我需要的 我的問題是,我剛剛開始與JPA和JPQL和JavaEE一般,所以它是非常混亂有時 感謝您的回答 – ErVeY 2010-09-03 04:10:29

+0

@ErVey沒問題,我只是說這是一般性建議,如果問題很清楚,你可能會得到更好/更快的答案(我在這裏有點猜測)。無論如何,不​​客氣。 – 2010-09-03 04:31:57

0

我想,這是答案!

SELECT NEW entities.PersonWell(c.peopleId, c.name, c.age, c.height, c.weight) 
FROM 
    People AS c; 

而且這entities.PersonWell類的構造函數:

public PersonWell(Integer peopleId, String name, short age, short height, short weight, short speechspeed) { 
     this.peopleId = peopleId; 
     this.name = name; 
     this.age = age; 
     this.height = height; 
     this.weight = weight; 
     this.speechspeed = speechspeed; 
    } 

有對結果的提取一些代碼:

List<PersonWell> resultList = query.getResultList(); 

我希望,它會幫助你的! :)