EJB-QL - Usando join (dúvida)

1 resposta
D

Pessoal,

Tenho duas entities e gostaria de fazer uma consulta assim:

SELECT e1 FROM Entity1 e1, Entity2 e2 WHERE e2.fk = e1.id AND e2.prop = 'val1'

Ou seja, retornar todas as entidades cuja entidade relacionda tenha um valor X.

Na vida real as entidades são Incident e IncidentContent.

Como é possível fazer isso via EJB-QL?

Obrigado,

Davi

@Entity
@Table(name="incident")
public class Incident implements Serializable {

	private static final long serialVersionUID = 3573778753193900212L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;

	private Date firstSeen;

	private Date lastSeen;

	private String name;

	private String description;

	@OneToMany(fetch=EAGER)
	@JoinTable(name="incident_content_join", joinColumns = @JoinColumn(name="incident_id", referencedColumnName = "id"))
	private Set<IncidentContent> content;
}
@Entity
@Table(name="incident_content")
public class IncidentContent implements Serializable {
	
	private static final long serialVersionUID = 6151243772642329375L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long id;
	
	private String name;
	private String value;
	private Date creationDate;
}

1 Resposta

lcegatti
select i from Incident i join i.content ic

assim também da certo:

select i from Incident i, IN (i.content) ic

[]'s

Criado 29 de outubro de 2008
Ultima resposta 29 de out. de 2008
Respostas 1
Participantes 2