JPA..duvida com ler um List com dois objetos ...em createQuery

Help,

não estou conseguindo após o comando abaixo ler os objetos e,a
que estão na em uma lista …

Se alguém puder me ajudar agradeceria …
como faria for e cast …

está dando erro

for (int i = 0; i < listas.size(); i++) {
				

				Student student = (Student)(listas.get(i));


erro:

 java.lang.ClassCastException: [Ljava.lang.Object;

abs

File: Main.java
 
import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.FlushModeType;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class Main {
static EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAService");

static EntityManager em = emf.createEntityManager();

public static void main(String[] a) throws Exception {
em.getTransaction().begin();

Query query = em.createQuery("SELECT e, a FROM Student e JOIN e.address a");
System.out.println(query.getResultList());
List listas = query.getResultList());

em.getTransaction().commit();
em.close();
emf.close();

Helper.checkData();
}
}	 

---
File: Student.java
 
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Student {
@Id
private int id;
private String name;
private long salary;
@Temporal(TemporalType.DATE)
private Date startDate;

@OneToOne
private Address address;

@OneToMany(mappedBy="student")
private Collection<Phone> phones = new ArrayList<Phone>();

@ManyToOne
private Department department;

@ManyToOne
private Student manager;

@OneToMany(mappedBy="manager")
private Collection<Student> directs = new ArrayList<Student>();

@ManyToMany(mappedBy="students")
private Collection<Project> projects = new ArrayList<Project>();

	 

File: Address.java
 
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Address {
@Id
private int id;
private String street;
private String city;
private String state;
private String zip;
	 


Tu notou que o teu Select está retornando Students e Address, e não somente Students como vc quer?

Abraços

solucao :



for (Object[] resultElement : itens) {
	Student estudante  = (Student)resultElement[0];
	Address      endereco = (Address)resultElement[1];
1 curtida