2017-10-18 5 views
2

Application: démarrage SpringSpring JPA, cartographie @SqlResultSetMapping au référentiel JPA

Je suis en train de cartographier la classe non entité référentiel JPA avec @SqlResultSetMapping et @NamedNativeQuery.

Je reçois l'erreur suivante lors de l'exécution de l'application:

dépendances non satisfaites exprimé à travers le champ 'cityAddressRepository'; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'cityAddressRepository': L'invocation de la méthode init a échoué; l'exception imbriquée est java.lang.IllegalArgumentException: pas un type géré: class com.city.strom.core.domain.CityAddressEntity at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:573) ~ [printemps-haricots-5.0.0.RC1.jar: 5.0.0.RC1]

toute aide sera appeciated, est quelque chose de mal dans ma mise en œuvre

CityAddress.java

public class CityAddress { 

    private static final long serialVersionUID = -4860426805452667396L; 

    private Integer objectid; 
    private String streetname; 
    private String streetnumber; 


    public Integer getObjectid() { 
     return objectid; 
    } 
    public void setObjectid(Integer objectid) { 
     this.objectid = objectid; 
    } 
    public String getStreetname() { 
     return streetname; 
    } 
    public void setStreetname(String streetname) { 
     this.streetname = streetname; 
    } 
    public String getStreetnumber() { 
     return streetnumber; 
    } 
    public void setStreetnumber(String streetnumber) { 
     this.streetnumber = streetnumber; 
    } 

} 

CityAddressEntity.java

@Entity 
@SqlResultSetMapping(
    name="cityaddressmap", 
    entities={ 
     @EntityResult(
      entityClass=CityAddress.class, 
       fields={ 
        @FieldResult(name="objectid", column="ID"), 
        @FieldResult(name="streetnumber", column="STREETNUMBER"), 
        @FieldResult(name="streetname", column="STREETNAME") 
       }   
     ) 
    } 
) 
@NamedNativeQuery(
    name="CityAddressEntity.AllCityAddresses", 
    query="select OBJECTID, ADD_NUM STREETNUMBER, trim(ADD_STREET || ' ' || ADD_STREET_TYPE) STREETNAME from SWPF_PARCEL_V;", 
    resultSetMapping="cityaddressmap") 
public class CityAddressEntity implements Serializable{ 

    private static final long serialVersionUID = -4860426805452667396L; 

    public CityAddressEntity() 
    { 

    } 
} 

CityAddressRepository.java

public interface CityAddressRepository extends JpaRepository<CityAddressEntity, Long>{ 

    @Query(name="CityAddressEntity.AllCityAddresses") 
    public List<CityAddress> AllCityAddresses(); 

} 
+0

est quelqu'un peut aider sur ce s'il vous plaît? – user8796936

Répondre

0

CityAddress n'est pas une entité, utilisez targetClass à la place entityClass. Essayez quelque chose comme ça:

@SqlResultSetMapping(
    name="cityaddressmap", 
    classes={ 
     @ConstructorResult(
      targetClass=CityAddress.class, 
       columns={ 
        @FieldResult(name="ID", type=Integer.class), 
        @FieldResult(name="STREETNUMBER", type=String.class), 
        @FieldResult(name="STREETNAME", type=String.class) 
       }   
     ) 
    } 
) 

et ajouter constructeur à CityAddress

public class CityAddress { 

     private Integer objectid; 
     private String streetname; 
     private String streetnumber; 

     public CityAddress(Integer objectid, String streetname, String streetnumber) { 
      this.objectid = objectid; 
      this.streetname = streetname; 
      this.streetnumber = streetnumber; 
     }