9. September 2008

JPA Named Queries auslagern

Bei JPA können Named Queries neben der Definition in Klassen (über Annotations) auch in externe XML-Files definiert werden.

Das XML-File (z.B. META-INF/namedQueries.xml) hat folgendes Format:

<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
http://java.sun.com/xml/ns/persistence/orm/orm_1_0.xsd"
version="1.0">

<named-query name="findPersonByName">
<query>
<![CDATA[select person from Person person where person.name = :name]]>
</query>
</named-query>
...
</entity-mappings>


Die Datei wird dann in der persistence.xml eingebunden:


<persistence-unit name="MyPU" >
<provider>org.hibernate.ejb.HibernatePersistence</provider>

<mapping-file>
META-INF/namedQueries.xml
</mapping-file>
...
</persistence-unit>

Keine Kommentare: