2010-09-02 25 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(); 

我希望,它会帮助你的! :)