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;