Pergunta

Preciso manter todas as consultas nomeadas em um arquivo separado.Por exemplo

@javax.persistence.NamedQueries({
    @NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employee e")})

public class AllNamedQueries {

}

Agora, isso por si só causa um erro "Consultas nomeadas só podem ser definidas na classe Entity ou MappedSuperClass".

Como faço para criar consultas nomeadas em um arquivo separado?Por separado, quero dizer arquivos que não sejam arquivos de entidade.

Foi útil?

Solução

Você pode usar orm.xml que permite definir mapeamentos JPA em XML.Essa abordagem é equivalente e substitui as anotações.

Exemplo baseado em definir consulta nomeada em orm.xml com jpa e hibernate :

<entity class="com.example.Employee">
    <table name="Employee.findAll" />
    <named-query name="findAll">
        <query><![CDATA[
          SELECT e
          FROM Employee e
        ]]></query>
    </named-query>
</entity>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top