2016-03-24 11 views
0

Adlandırılmış sorgularimi başvurumun dışında depolamaya çalışıyorum. Şimdiye kadar okuduğum her şey, sorguları orm.xml dosyasına koymamızı söylüyor. Ben de öyle yaptım ki:orm.xml dosyasında belirtilen sorguyu kullanma, hata alma Varlık için tanımlanmış tanım yok

<?xml version="1.0" encoding="UTF-8"?> 
... 
    <entity class="com.blah.mapdb.repository.ResultRepository"> 
     <table name="ResultRepository.getMapForTarget" /> 
     <named-query name="getMapForTarget"> 
     <query> 
       <![CDATA[ 
       Big giant query goes here 
       </query> 
     </named-query> 
    </entity> 
    </entity-mappings> 

Ancak, uygulamayı başlatmaya çalıştığımda bir hata alıyorum.

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.blah.mapdb.repository.ResultRepository 

İşte benim depo sınıfı var:

package com.blah.mapdb.repository; 
import java.util.List; 

import org.springframework.data.jpa.repository.Query; 
import org.springframework.data.repository.CrudRepository; 
import org.springframework.data.repository.query.Param; 

import com.blah.mapdb.model.*; 

public interface ResultRepository extends CrudRepository<Result, Long> { 
     @Query(name="getMapForTarget",nativeQuery=true) 
    List<Result> getMapForTarget (@Param("p1") String d, @Param("p2") String t, @Param("p3") String c); 
... 
} 

Ve burada Sonucu sınıfının ilgili bitlerini var: Açıkça

package com.blah.mapdb.model; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.Id; 


@Entity 
public class Result { 

    @Id 
    private int id; 
... 
} 

sonuç sınıf yığın izleme ile kazma bana bu hata veriyor tanımlanmış bir kimliği var. Sorguyu ResultRepository sınıfına eklerseniz, her şey iyi çalışır. Neden ResultRepository sınıfı hakkında bu hatayı alıyorum hiçbir fikrim yok. Burada neyi özlüyorum? Bu hatalı gibi görünüyor

<entity class="com.blah.mapdb.repository.ResultRepository"> 

, bunun yerine

<entity class="com.blah.mapdb.model.Result"> 

olmalıdır:

cevap

0

listenize orm.xml bu hattı var. Ayrıca, tablo ad tanımlamanız muhtemelen yanlıştır; eşlenmiş olan Result öğenizin sahip olduğunuz gerçek tablo adını belirtmeniz gerekir.

İlgili konular