我在Heroku上部署了一个非常简单的Spring Boot应用程序。应用程序本身在Controller方面运行良好 - API返回一些简单的JSON,没什么特别的。
我已经向Heroku添加了Postgres数据库,在应用程序启动时,我看到Spring按预期创建了表。它只有一个表具有超级简单的映射类:
@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
存储库只是一个没有显式实现的接口:
@Repository
public interface ScoreRepository extends CrudRepository<Score, Long>
我在repository.save(...)
带注释的类中调用@Service
,该类具有自动连接的存储库。我认为这样工作正常,因为我没有看到任何错误 - 但我看不到任何记录都被保存到数据库中!不知道这里可能出现什么问题;我想我可以设置Heroku错误,或者也许有一些明显我错过了Heroku中的Postgres设置?
次要问题
也许是相关的,但是日志记录似乎也不太好用。根据Heroku文档,我可以打印到标准输出,它应该出现在日志中,但这不会发生。此外,我在属性文件中有这个:
spring.jpa.show-sql=true
但是我在heroku日志中看不到这样的SQL查询记录。
任何帮助非常感谢!提前谢谢。
答案 0 :(得分:1)
日志记录问题:当你启动你的应用程序时,你是否看到控制台中的任何错误(甚至在spring logo之前的前几行)说多个版本的日志jar(slf4j.jar),如果是这样你可能看不到日志。如果是这样,那么检查您的maven依赖关系并排除所有不确定的slf4j.jar
并使用debug启动spring应用程序。
java -jar myapp.jar --debug
持久性问题:确保在事务中运行它(在spring上下文中)
解决你的日志记录问题之后你可以解决这个问题,但是你可以调试你的代码,看看请求是否达到你的保存方法,然后你可以进入查找是否有任何问题,但我肯定会查看日志以查找错误(如果有)。
答案 1 :(得分:0)
我没有看到一个二传手。你甚至拥有它,因为我看到的只是评论 // Getter和setter