org.hibernate.exception.SQLGrammarException after deploy on



我在 Heroku 服务上部署应用程序后遇到问题(但在本地机器上它仍然可以正常工作)

错误消息是:

可能未处理的拒绝: {"data":{"timestamp":1497005957771,"status":500,"error":"Internal Server Error","exception":"org.springframework.dao.InvalidDataAccessResourceUsageException","message":"无法提取 ResultSet;SQL [n/a];嵌套异常是 org.hibernate.exception.SQLGrammarException: 无法提取 ResultSet","path":"/reports/by1/2017-06-09"},"status":500,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/reports/by1/2017-06-09","headers":{"Accept":"application/json, text/plain,/","X-Request-With":"XMLHttpRequest","X-XSRF-TOKEN":"fd7aca17-d409-4922-85e0-d6b72bc8d6f0"}},"statusText":"}

本地休眠查询为:

休眠:选择 report0_.id 作为id1_6_,report0_.date 作为date2_6_,report0_.input 作为input3_6_,report0_.line_id 作为line_id4_6_,report0_.output 作为output5_6_,report0_.

register为register6_6_,report0_.shift 作为报告report0_shift7_6_,其中 report0_.line_id=? 和 report0_.date=?

在线休眠查询是:嗯,这是另一个问题,因为我无法阅读它,错误日志很大。这个问题的答案可能是两个:)的答案

报告.class是:

@Entity
@Table(name = "report")
public class Report {
@Id
@GenericGenerator(name = "generator", strategy = "increment")
@GeneratedValue(generator = "generator")
@Column(name = "id", nullable = false)
private Integer id;
@Column(name = "date", nullable = false)
private Date date;
@Column(name = "shift", nullable = false)
private Integer shift;
@Column(name = "register", nullable = false)
private Integer register;
@Column(name = "input", nullable = false)
private Integer input;
@Column(name = "output", nullable = false)
private Integer output;
@Column(name = "line_id", nullable = false)
private Integer lineId;  . . . some code is ommited . . .

应用程序适用于: https://counter-proj2.herokuapp.com/

登录:亚历克斯, 通行证: 123456

Git:https://github.com/ajaks84/CP_ver2

有什么想法可以成为原因吗?

顺便说一句,我将非常感谢有关该应用程序的任何评论。

有两件事我不喜欢/闻起来很糟糕。

a) 报告回购 List findByLineIdAndDate(Integerline_id, Date date);

在存储库中,需要使用变量名称,而不是列名称。可能不是问题的原因,但它看起来非常丑陋。

b) 导入 java.sql.Date;

只有上帝知道heroku DB如何处理java.sql.Date,这是Java历史上最糟糕的实现之一。我会切换到一个简单的java.util.Date甚至Instant,并确保heroku DB使用正确的数据类型

问题已解决。我安装了ConEmu,终于看到了Heroku上发生的错误。这与sql无关。日期只是错误的sql脚本。

感谢您的关注。

最新更新