J'ai créé une application de démarrage à ressort qui utilise jdbctemplate, tout fonctionne bien sur Localhost, mais lorsque je déploie mon application à Heroku et visitez le point final, je reçois ces informations:
public Products getProductsList() { ArrayList<Product> productsList = new ArrayList<>(); jdbcTemplate.query( "SELECT id, name, price, image, description FROM public.products;", (rs, rowNum) -> new Product(rs.getInt("id"), rs.getString("name"), rs.getFloat("price"), rs.getString("image"), rs.getString("description")) ).forEach(product -> productsList.add(product)); return new Products(productsList); }
3 Réponses :
Je pense que vous devez mettre votre nom de schéma dans votre fichier application.properties em> comme: et écrivez votre requête comme: p> < Pré> xxx pré> Source: Cette réponse et Cette réponse p> p>
Je n'utilise pas jpa / hibernate, juste jdbctemplate
Vous devrez créer les tables à l'aide d'un cadre de migration comme décrit dans https://devcenter.heroku.com/articles/Running-Database-migrations-for-java-apps P>
D'accord, je l'ai réparé. P>
Heroku a ajouté sa propre configuration à mon projet pour une raison quelconque pour une raison quelconque (Addon avec PostgreSQL) et une base de données utilisée à partir de Paramètres-> Config Vars -> Database_url au lieu de la base de données de l'application.Properties. P>
J'ai utilisé la commande de cette réponse dans Heroku CLI pour supprimer la base de données Heroku de mon application. P>
Soit: 1) Le tableau "Produits" n'existe pas dans l'environnement déployé, 2) Vous avez une faute de frappe dans le nom de la table (étui à chameaux, étui de serpent, minuscule, majuscule) ou si ceux-ci sont bons, alors ceci: Stackoverflow.com/questions/36753568/...
Comme je l'ai dit, ça marche sur la machine locale