Je suis assez nouveau à la botte de printemps et à la JPA. Je fais un petit projet pour mon objectif d'apprentissage.
Classe d'entité P>
spring.application.name=currency-exchange-service server.port=8000 spring.jpa.show-sql=true spring.h2.console.enabled=true spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
3 Réponses :
Je suis surpris que vous ne recevez pas d'exception au début de l'heure. Le échangeservicePositoire code> est null. Vous devez ajouter le @Repository code> Annotation dans le type ECHANGESVicePositoire code>. Le printemps est probablement incapable d'audrer ce haricot car il n'est pas annoté comme un référentiel (DAO) qui à son noyau est un @component code>. @Repository
public interface ExchangeServiceRepository extends JpaRepository<ExchangeService, Long>{
ExchangeService findByFromAndTo(String from, String to);
}
J'ai essayé de mettre l'annotation du référentiel dans l'interface mais toujours pas de joie. Je vois la même erreur
J'ai aussi eu la suspicion initiale là-bas. Mais ne semble pas pas le cas avec lui. Puisque JParePository est là, c'est vraiment nécessaire?
Je suis très positif que @RePository n'est pas requis Becoz, je suis capable d'utiliser des méthodes de dégoeutage de JParePository, mais je ne sais pas ce qui se passe lorsque j'essaie d'utiliser "ExchangeService Ensachbyfromandto (chaîne de, String to);".
C'est extrêmement étrange. Avez-vous appelé l'annotation @enableJPeePositories dans la classe Entry-Point d'application?
@Json que voulez-vous dire par application de point d'entrée-ponctuel? Voulez-vous dire la classe principale? Si oui, j'ai essayé d'ajouter une annotation enableJPeePositories dans la classe principale aussi, mais je vois toujours la même exception
Oui. Pouvez-vous mettre à jour le message principal avec votre classe principale aussi? Serait bien de voir comment vous gérez la configuration / la configuration automatique.
Vous n'avez pas besoin d'ajouter @Repository code>, de mise en œuvre jParepository code> Le démarrage à ressort prendra soin de AutoWiring code>
Essayez d'utiliser au lieu de p> Il semble que le problème est là.
Afin de réfuter ou de confirmer cela, supprimez simplement la ligne avec ExchangeValue.setport (INTEGER.PARSINT (ENVIRONNEMENT.GETPROPERTY ("local.server.port"))); Code> P> P> P> P> P> P >
J'ai commenté ci-dessus la ligne de code et maintenant je ne reçois aucune exception. Mais je ne vois aucune sortie dans le navigateur non plus. J'ai connecté la valeur de "ExchangeValue" et je l'ai trouvé pour être NULL et c'est la raison pour laquelle je recevais Null Pointer Exception Coz, j'essayais de définir le port vers Null Référence. Maintenant, je ne suis pas sûr de savoir pourquoi je reçois une référence nulle de ExchangeValue.
D'accord de la question que je pouvais voir 2 choses
http: // localhost: 8000 / devise-échange / de / inr / to / USD code> li>
OL> ExchangeService exchangeValue = exchangeServiceRepository.findByFromAndTo(from, to);
Oui, la valeur d'échange est null. Mais pourquoi ça vient comme null? Merci
SELECT * à partir de Exchange_service où le devise_from = 'inr' et devise_to = 'USD'; code> retournera vide c'est pourquoi Exchangevalue code> est null
Parce que @avi a suggéré, selon votre URL http: // localhost: 8000 / change de devises / ** à partir de / INR ** / à / USD code> Vous n'avez pas cette entité dans la table qui a devise_from code> avec la valeur INR.
@Andrew merci pour l'explication. J'utilisais une mauvaise url. J'aurais dû utiliser localhost: 8000 / change de devises / de / USD / à / à / INR .
Deux questions: les données sont-elles peuplées dans votre table? Pouvez-vous confirmer cela? En outre, à quoi ressemble votre candidature? Proproperties?
Pouvez-vous ajouter l'annotation @RePository à l'interface de référentiel tout essayer?
Oui, je peux voir les données de la console H2. Application.Properties ressemble à ci-dessous. printemps.application.name = change-service-service serveur.port = 8000 printemps.jpa.show-sql = vrai printemps.h2.console.enabled = true printemps.datasource.url = jdbc: H2: Mem: Testdb Spring.DataSource .DriverClassName = org.h2.driver printemps.datasource.username = sa ressort.datasource.password = printemps.jpa.database-plate-forme = org.hibernate.dialect.h2dialect
@Tharakadevinda J'ai essayé de mettre l'annotation du référentiel dans l'interface mais toujours pas de joie. Je vois la même erreur.
SE TA Point de pause dans votre contrôleur et vérifiez les variables null i> et nous le dire.