2010-09-02 11 views
1

je dois affecter le résultat d'un résultat JPQL à une java classe simple objetComment affecter une requête JPQL à un objet Java simple?

J'ai quelque chose comme ça

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

je dois en quelque sorte pour stocker le résultat de cette requête SQL, par exemple

// pourrait être uneTable SELECT DISTINCT c.table_id, c.name, NULL AS Description dE uneTable

Comment puis-je faire en JPQL puis attribuez-lui le résultat de mon objet?

+0

Vous devriez vraiment essayer d'expliquer en anglais ce que vous essayez de faire (et aussi travailler sur la qualité de l'extrait de code que vous montrez). –

Répondre

1

La question est extrêmement floue. Donc, voici une réponse vague:

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

désolé à ce sujet, vous l'avez, ce qui était nécessaire pour mon problème est que je ne fais que commencer avec JPA et JPQL et JavaEE en général, donc il est parfois très confus Merci pour votre réponse – ErVeY

+0

@ErVeY Pas de problème, je Je le disais simplement comme un conseil général car vous obtiendrez probablement des réponses meilleures/plus rapides si le problème est clair (et j'étais un peu deviner ici). Quoi qu'il en soit, vous êtes les bienvenus. –

0

Je pense, c'est la réponse!

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

Et c'est un constructeur de classe 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; 
    } 

Il y a un code pour une extraction de résultat:

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

je l'espère, il vous aidera! :)