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á.