Vielleicht ist das nicht genau das, was Autor gefragt (Nicht-Java-Datei externalisieren zu), aber das ist, wie ich es gelöst:
1.) in meinem Anwendungskontext xml-Datei hinzugefügt I mappingResources
zu session
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>META-INF/Country.hbm.xml</value>
</list>
</property>
<property name="annotatedClasses">
<util:list>
<value>com.example.Country</value>
</util:list>
</property>
<property name="hibernateProperties" ref="hibernateProperties" />
</bean>
und in diesem Country.hbm.xml ich habe
<?xml version="1.0" encoding="UTF-8"?>
<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_2_0.xsd"
version="2.0">
<entity class="com.example.Country">
<named-query name="countryFindByCode">
<query><![CDATA[
select c
from Country c
where c.code = :code
]]></query>
</named-query>
<named-query name="countryFindByName">
<query><![CDATA[
select c
from Country c
where c.name = :name
]]></query>
</named-query>
</entity>
</entity-mappings>
Früher habe ich, dass nur benannte Abfragen zu definieren, ist der Rest der Einheit-Konfiguration in annotat Ionen.
Vielleicht hilft das jemandem.
Aus meiner Sicht ist dies keine Abfrage Externalisierung - es ist in der Klasse kompiliert und für mich Dutzende von Abfragen in der Entitätsklasse oder noch mehr Abfragen in der Paket-Info-Klasse Ich werde die Entität wählen. IMHO ist dies nicht die richtige Antwort für diese Frage, ich habe keine Ahnung, warum es akzeptiert wird -> -1 – Betlista
+1 Für mich ist es in Ordnung. Es zeigt, wie man mit Java Config und XML auch externalisiert. Lesen Sie die Frage vor dem Abstimmen, es wird deutlich gesagt, dass er die NamedQueries nicht innerhalb der Klasse haben möchte. – Augusto