我需要通过hibernate实体中的@Formula根据出发时间和持续时间计算火车到达时间。 depTime 是 Java util Date 和持续时间(以分钟为单位)。我需要通过 @Formula 添加 deptime 和持续时间。要在日期时间中添加分钟,我想使用 Apache commons 的 DateUtils 。但我无法完成公式。 帮助我如何实现这一目标。
@Column(name = "DEP_TIME")
private Date depTime;
@Column(name = "DURATION")
private int duration;
@Formula(DateUtils.addMinutes(depTime,duration))
private Date arrTime;
如果我在上面定义,我会在 @Formula 中遇到编译错误
Type mismatch: cannot convert from Date
to String.
帮助是否有任何替代方法可以在 Hibernate 实体中实现此目的。
谢谢
最佳答案
问题在于@Formula
标记仅接受代表SQL 的String
值。您的表达式会产生一个Date
值。
在@Formula
标记中,您应该使用 SQL 表达式而不是 Java 表达式。
文档:https://docs.jboss.org/hibernate/orm/5.1/javadocs/org/hibernate/annotations/Formula.html
关于java - Hibernate中的@Formula计算日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38760827/