2011-12-06 5 views
3

すべての名前付きクエリを別々のファイルに保存する必要があります。例えば名前付きクエリを個別のファイルに作成する方法

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

public class AllNamedQueries { 

} 

は今それほど自体に「クエリが唯一のエンティティまたはMappedSuperClassクラスで定義することができます名前付き」エラーが発生します。

名前付きクエリを個別のファイルで作成するにはどうすればよいですか?別に、エンティティファイル以外のファイルを意味します。

答えて

3

orm.xmlを使用すると、JPAマッピングをXMLで定義できます。このアプローチは同等であり、アノテーションをオーバーライドします。

define named query in orm.xml with jpa and 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> 
+0

私は冬眠しない、OpenJPAのを使用しています。 – SQC

+1

Hibernateと何が関係していますか?これは仕様通りJPAです。 – DataNucleus

+1

@SQC: 'orm.xml'はJPA標準記述子です。* define ** JPA ** XMLのマッピング* - すべてのJPAプロバイダで動作します。参照してください:http://openjpa.apache.org/builds/1.0.0/apache-openjpa-1.0.0/docs/manual/jpa_overview_persistence.html –

関連する問題