Pensé que sé cómo usar JOIN
en JPQL
pero aparentemente no. ¿Alguien puede ayudarme?JPA: UNIRSE a JPQL
select b.fname, b.lname from Users b JOIN Groups c where c.groupName = :groupName
Esto me dará Excepción
org.eclipse.persistence.exceptions.JPQLException
Exception Description: Syntax error parsing the query
Internal Exception: org.eclipse.persistence.internal.libraries.antlr.runtime.EarlyExitException
Users
tienen una relación con OneToMany Groups
.
Users.java
@Entity
public class Users implements Serializable{
@OneToMany(mappedBy="user", cascade=CascadeType.ALL)
List<Groups> groups = null;
}
Groups.java
@Entity
public class Groups implements Serializable {
@ManyToOne
@JoinColumn(name="USERID")
private Users user;
}
Mi segunda pregunta es dejar que dicen esta consulta devuelve un resultado único, entonces si lo hago
String temp = (String) em.createNamedQuery("***")
.setParameter("groupName", groupName)
.getSingleResult();
***
representan el nombre de la consulta anterior . Entonces, ¿fname
y lname
concatenados juntos dentro de temp
o recibo un List<String>
?
¿Qué pasa si en lugar de seleccionar los campos que ha seleccionado una entidad + un campo de otra entidad. Algo como 'SELECCIONAR b, c.nombre ...'. Entonces, ¿el primer objeto en el Objeto [] va a ser un campo de by la entidad completa? – Ced