Select utilizando uma NamedQuery de um campo definido com @Any

0 respostas
david_ware

Boa tarde,

Já procurei um monte mas não encontrei nada que resolvesse o meu problema

Estou tendo problemas com um select orientado a objetos com uma @NamedQuery

Criei uma interface sem assinaturas e duas classes que implementam a mesma, para fazer um relacionamento polimórfico.
Tenho uma outra classe que tem como atributo a interface, que poderá ser uma de suas implementações.

Segue os fontes

Interface

public Interface Destino extends Serializable {

}

classe A…

@Entity
@Table(name="a")
public class A implements Destino {

    @Id@GeneratedValue    
    @Column(name="cd_a")
    private long id;
    
    //demais atributos
    
    //setters e getters
}

classe B…

public class B implements Destino {

    @Id@GeneratedValue
    @Column(name="cd_b")
    private long id;

    //demais atributos
    
    //setters e getters

}

classe C… (com mapeamento @Any)

@Entity
@Table(name="c")
public class C {

    @Id@GeneratedValue
    @Column(name="cd_c")
    private long id;

    @Any(metaColumn= @Column(name="ds_tipo_destino"))
    @AnyMetaDef(
        idType="long",
        metaType="string",
        metaValues = {
            @MetaValue(value="A", targetEntity = A.class),
            @MetaValue(value="B", targetEntity = B.class),
        }
    )
    @JoinColumn(name="cd_destino")
    private Destino destino;

    //setters e getters
}

Então, gostaria de saber como fazer um select orientado a objetos do campo "ds_tipo_destino"
algo como:

select c1 from C as c1 where c1. //aqui não sei como prosseguir

Ps.: Sei que podeira utilizar query nativa, porém não posso fazer, mas realmente gostaria de saber se há alguma forma de fazer isso com orientação a objetos
Grato desde já. :slight_smile:

Criado 23 de maio de 2011
Respostas 0
Participantes 1