【问题标题】:JPA @query is not working when date value is null during insert当插入期间日期值为空时,JPA @query 不起作用
【发布时间】:2021-11-17 02:17:25
【问题描述】:

我在我的 JPA 存储库中编写了下面的 java 代码。

@Query("insert into table (date_colum) value(:dateValue)",nativeQuery= true)
public int insertData(@Param("dateValue") dateValue);

当 dateValue 列具有某些值时,上面的代码可以完美运行。但是在这种情况下,当 dateValue cloumn 的值为 null 时,会出现以下错误。

Error : ora-00932 inconsistent datatypes expected date got binary

请提供任何解决方案,不胜感激。

提前致谢

【问题讨论】:

  • 你确定是date。错误很明显, :dateValue 不是日期。
  • 不,我确定这只是日期,当传递值是日期时这个工作完美,但在空值的情况下不起作用
  • 您实际使用的日期类型是什么?
  • 我使用的日期

标签: oracle hibernate jpa spring-data-jpa spring-data


【解决方案1】:

如果我们将 @Temporal 添加到您的 Date 参数,Spring Data 知道如何将该参数呈现给 Hibernate,即使它为 null:

代码如下。

@Query("insert into table (date_colum) value(:dateValue)",nativeQuery= true)
public int insertData(@Param("dateValue") @Temporal java.util.Date dateValue);

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2018-01-24
    • 2011-08-22
    • 2021-03-22
    相关资源
    最近更新 更多