使用Hibernate API选择时将日期转换为时间戳

时间:2015-03-17 09:37:29

标签: java hibernate

我们有一个GUI应用程序,它向DB发送大约40个参数。 基于这些参数,生成动态查询以获取数据。仅当条件不同时,需要选择的字段数保持不变。 Hibernate标准API用于形成动态查询。我们使用SQLMX作为在HP Nonstop服务器上运行的数据库。 某些日期需要存储为0001-01-01。现在,在选择此字段(DATE数据类型)时,应用程序将其显示为2001-01-01。当从RazorSQL运行查询时,我们看到不正确的结果。 我可以通过“从表中选择(cast(date1 as timestamp)”来解决RazorSQL中的这个问题。这会正确地给出日期,但是有时间戳。这没关系。 在Java应用程序中,我建议项目团队使用NamedNativeQueries,其中在查询本身中指定了CAST作为TIMESTAMP构造。后来,我开始知道团队不能使用NamedNativeQueries,因为查询本质上是动态的。 (如果条件可以有1或5或没有条款)。 尝试使用Temporal.DATE注释。不工作。我观察到的是,我们需要在选择自己时将日期转换为时间戳。查询发生后调用变量的setMethod,如果我们在执行select时不进行强制转换,则0001-01-01的值将更改为2001-01-01。 有没有什么办法可以在执行查询之前应用SQL构造(类似于Oracle中的to_date)?

0 个答案:

没有答案