JPA com Inheritance: e as queries?

1 resposta
guigouz

Tenho duas entidades Pai e Filho extends Pai.
Gravo no banco de dados sem problemas, o que acontece é que

select p from Pai p

Me retorna os filhos também. Teria como pegar só os pais ?

No hibernate tinha uma keyword pra isso, agora no JPQL não to achando

1 Resposta

guigouz

Única coisa que encontrei a respeito, supondo a entidade

@Entity(name = "ABSTRACT_ENTITY") 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(name = "ABSTRACT_ENTITY_TYPE", discriminatorType = DiscriminatorType.STRING) 
public abstract class AbstractEntity {

In TopLink Essentials you can use a DescriptorCustomizer to add a QueryKey to your TopLink descriptor for the type field. You will then be able to query on this query key in JPQL.

i.e.

public class MyDescriptorCustomizer implements DescriptorCustomizer { public void customize(ClassDescriptor descriptor) { descriptor.addQueryKey("type", "ABSTRACT_ENTITY.ABSTRACT_ENTITY_TYPE"); } }

You can add the customizer in your persistence.xml.

Alguma outra idéia ?

Criado 7 de maio de 2008
Ultima resposta 26 de mai. de 2008
Respostas 1
Participantes 1