2017-10-15 12 views
0

J'ai une application Spring Boot très simple déployée sur Heroku. L'application elle-même fonctionne très bien en termes de contrôleur - l'API retourne un simple JSON, rien de spécial.Spring boot + Postgres + JPA + Heroku pas de données persistantes et pas de journalisation

J'ai ajouté une base de données Postgres à Heroku et au démarrage de l'application, je vois que Spring crée la table comme prévu. Il est à seulement 1 table avec une classe de cartographie super simple:

@Entity 
public class Score implements Serializable { 
private static final long serialVersionUID = -2899157432342241888L; 

private String customer; 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 

private Date date = new Date(); 

private int score; 

//setters and getters 

Le dépôt est juste une interface sans mise en œuvre explicite:

@Repository 
public interface ScoreRepository extends CrudRepository<Score, Long> 

J'appelle repository.save(...) dans une @Service classe annotée qui a l'auto référentiel Je suppose que cela fonctionne bien, parce que je ne vois pas d'erreurs - mais je ne vois aucun enregistrement persistant dans la base de données! Aucune idée de ce qui pourrait mal tourner ici; Je suppose que j'aurais pu me tromper avec Heroku, ou peut-être y a-t-il quelque chose d'évident qui me manquait dans la configuration de Postgres à Heroku?

question secondaire

Peut-être liés, mais l'exploitation forestière ne semble pas fonctionner trop bien non plus. Selon la documentation Heroku, je peux imprimer en standard et il devrait apparaître dans le journal, mais cela n'arrive pas. De plus, j'ai ce dans le fichier de propriétés:

spring.jpa.show-sql=true 

Mais je ne vois pas de journalisation des requêtes SQL dans les journaux de Heroku.

Toute aide très appréciée! Merci d'avance.

Répondre

1

Problème de connexion: lorsque vous démarrez votre application, voyez-vous des erreurs dans la console (les premières lignes avant même le logo du printemps) disant la version multiple de jar d'enregistrement (slf4j.jar), si c'est le cas, vous ne pouvez pas voir les journaux. Si cela est vrai, vérifiez vos dépendances maven et excluez tous les inutiles slf4j.jar

et démarrez votre application de printemps avec le débogage.

java -jar myapp.jar --debug 

question de la persistance: Assurez-vous de l'exécuter dans la transaction (dans le contexte du printemps)

Une fois que vous résoudre votre problème de l'exploitation forestière, vous pouvez comprendre cela je crois, mais vous pouvez déboguer votre code et voir si la demande atteint votre méthode de sauvegarde, puis vous pouvez intervenir pour trouver s'il y a un problème, mais je verrais certainement les journaux pour trouver des erreurs le cas échéant.

0

Je ne vois pas de setter. Est-ce que vous l'avez même comme tout ce que je vois est commentaire // Getter et setter

+0

Oui ils sont là je les ai omis ici d'où le commentaire –