java - Hibernate中的@Formula计算日期时间

标签 java hibernate entity formula

我需要通过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/

相关文章:

java - jpql查询: Having problems with case conditions when comparing nullable fields

xml - fo : entity referenced but not declared

java - 了解 : "Cannot perform operation delete on detached object"

java - Java OFBiz 中的文件上传?

java - Ant 构建失败,没有可见错误

java - 将 HTML 输入日期映射到 Java 对象的 LocalDate

java - 越来越严重 : Could not locate SessionFactory in JNDI while getting sessionfactory

java - 如何使用 FileInputStream 访问 jar 中的 txt 文件?

java - Spring 数据库初始化仅在应用程序重启后才有效

java - 自动实体映射类似于 JSF 的 O/R 映射?