के साथ orm.xml में नामित क्वेरी को परिभाषित करें। मैं अपने नामित प्रश्नों को अपने orm.xml में डाल रहा हूं (मेटा-आईएनएफ में persistence.xml के साथ डाल दिया गया है) लेकिन मेरे orm.xml को हाइबरनेट द्वारा अनदेखा किया जाता है/जेपीए।jpa और hibernate
जब मैं em.createNamedQuery ("myQuery") के साथ अपना नामित क्वेरी बनाने का प्रयास करता हूं, तो यह लौटाता है कि यह यह क्वेरी नहीं मिल सकती है।
मैं एनोटेशन का उपयोग करता हूं और मैं अपने नामित प्रश्नों को orm.xml (केवल उस) में बाहरी करना चाहता हूं।
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/orm.xml</mapping-file>
<class>com.mysite.Account</class>
<properties>
<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.EhCacheProvider" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="use_sql_comments" value="false" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MYSQLDialect" />
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="20" />
<property name="hibernate.c3p0.timeout" value="300" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
<property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider" />
</properties>
</persistence-unit>
</persistence>
यहाँ
मेरी orm.xml
<?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_1_0.xsd" version="1.0">
<package>com.mysite</package>
<entity class="Account">
<sql-result-set-mapping name="nicknames">
<column-result name="nickname" />
</sql-result-set-mapping>
<table name="Account" />
<named-native-query name="myQuery" result-set-mapping="nicknames">
<query><![CDATA[select a.nickname from Account a]]>
</query>
</named-native-query>
</entity>
</entity-mappings>
क्या मैं गलत कर रहा हूँ है:
यहाँ मेरी persistence.xml है? मेरा orm.xml क्यों अनदेखा किया जाता है?
धन्यवाद
क्या आपका खाता खाता सफलतापूर्वक मैप किया गया है? अर्थात। क्या आप 'em.find (account.class, someId)' जैसी क्वेरी बना सकते हैं? – Bozho
हाँ मेरा खाता अच्छी तरह से मैप किया गया है, क्योंकि मैं इसे एनोटेशन के साथ सफलतापूर्वक उपयोग करता हूं। –