在构造函数上使用JPA SELECT NEW和Timestamp时出错

时间:2013-04-02 20:10:19

标签: java hibernate jpa

我有以下JPA查询:

SELECT NEW test.vo.HappyVO(o.acid, o.dest, o.dep, o.time) FROM HappyTable1 o

我的HappyVO有以下构造函数:

public HappyVO(String a, String b, String c, java.sql.Timestamp e)

当我运行此查询时,我收到以下错误:

 org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [test.vo.HappyVO]

如果我将构造函数更改为

public HappyVO(String a, String b, String c, Object e)

错误没有发生,变量 e 是java.sql.Timestamp的一个实例

忘记提到我正在使用MySQL数据库,并且该列的类型为timestamp,并且HappyTable1中时间字段的声明类型为java.sql.Timestamp

1 个答案:

答案 0 :(得分:5)

它看起来很像这个已知的Hibernate错误:https://hibernate.atlassian.net/browse/HHH-4179

建议的解决方法是在POJO构造函数中使用Date类型。