HQL Dois relacionamentos mesma tabela

1 resposta
vivi_grieco

Pessoal,
tenho um SQL que tenho que transformar para HQL, e não tô sabendo como fazer. O Problema é que eu tenho em uma entidade dois relacionamentos com outra entidade, e no sql é feito um left join com esses relacionamentos. Se alguém pudeer me ajudar…

O SQL:

SELECT A.ID_CONVENIO,
       A.ID_tipo_Recolhim
from Convenio A, RELAC_CONVENIOS B, RELAC_CONVENIOS C
WHERE A.ID_CONVENIO = B.ID_CONVENIO_PAI(+)
      AND B.ID_CONVENIO_PAI IS NULL
      AND A.ID_CONVENIO = C.ID_CONVENIO_FILHO(+)
      AND C.ID_CONVENIO_FILHO IS NULL
      AND A.ID_tipo_Recolhim = nvl('&tipoRecol',A.ID_tipo_Recolhim)
      AND A.ID_convenio = nvl('&conv',A.ID_convenio)

Minhas classes de persistência:

@Entity
@Table(name = "RELAC_CONVENIOS")
@SequenceGenerator(name = "SEQ_RELAC_CONVENIOS", sequenceName = "SEQ_RELAC_CONVENIOS")
public class RelacConvenios extends BaseEntity {


	@Id
	@Column(name = "ID_RELAC_CONVENIOS", unique = true, nullable = false, precision = 5, scale = 0)
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_RELAC_CONVENIOS")
	private Long id;

	@ManyToOne(fetch = FetchType.LAZY, targetEntity = Convenio.class)
	@JoinColumn(name = "ID_CONVENIO_FILHO")
	private Convenio convenioFilho;

	@ManyToOne(fetch = FetchType.LAZY, targetEntity = Convenio.class)
	@JoinColumn(name = "ID_CONVENIO_PAI")
	private Convenio convenioPai;

...
@Entity
@Table(name = "CONVENIO")
public class Convenio extends BaseEntity {


	@Id
	@Column(name = "ID_CONVENIO", unique = true, nullable = false, precision = 10, scale = 0)
	private Long id;


	@ManyToOne(fetch = FetchType.LAZY, targetEntity = TipoRecolhimento.class)
	@JoinColumn(name = "ID_TIPO_RECOLHIM")
	private TipoRecolhimento tipoRecolhimento;


	@Column(name = "NOME_FANTASIA", length = 100)
	@Length(max = 100)
	private String nomeFantasia;

1 Resposta

vivi_grieco

UP…

Criado 27 de julho de 2011
Ultima resposta 28 de jul. de 2011
Respostas 1
Participantes 1