在Hibenate @Formula计算日期时间

时间:2016-08-04 07:17:58

标签: java hibernate entity formula

我需要根据hibernate实体中@Formula的离开时间和持续时间来计算列车到达时间。 depTime是Java util日期和持续时间,以分钟为单位。我需要通过@ Formula.To在日期时间添加分钟来添加时间我想要使用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实体中实现这一点。

谢谢

1 个答案:

答案 0 :(得分:1)

问题是@Formula标记只接受表示SQL的String值。您的表达式会产生Date值。

@Formula标记中,您应该使用SQL表达式而不是Java表达式。

文档:https://docs.jboss.org/hibernate/orm/5.1/javadocs/org/hibernate/annotations/Formula.html