Tôi đang cố gắng đặt các truy vấn được đặt tên trong tệp orm.xml của mình (được đặt trong META-INF với persistence.xml) nhưng tệp orm.xml của tôi có vẻ bị bỏ qua bởi hibernate/jpa.xác định truy vấn được đặt tên trong orm.xml với jpa và hibernate
Khi tôi cố gắng tạo truy vấn được đặt tên với em.createNamedQuery ("myQuery"), nó trả về rằng nó không thể tìm thấy truy vấn này.
Tôi sử dụng chú thích và tôi muốn mở rộng các truy vấn được đặt tên của mình trong tệp orm.xml (chỉ có vậy).
Đây là persistence.xml tôi:
<?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>
đây là orm.xml tôi
<?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>
Những gì tôi đang làm sai? Tại sao orm.xml của tôi bị bỏ qua?
nhờ
Tài khoản 'của bạn đã được ánh xạ thành công chưa? I E. bạn có thể tạo một truy vấn như 'em.find (Account.class, someId)'? – Bozho
có Tài khoản của tôi được ánh xạ tốt, bởi vì tôi sử dụng nó thành công với chú thích. –