绑定日期类型参数时 createNativeQuery 出现问题
issue with createNativeQuery when binding date type parameter
我使用 EntityManager 创建 nativeQuery。
我的数据库是 Postgres 数据库。
我请求的日期字段是这样模型化的..
@Column(name = "date", columnDefinition = "date", nullable = false)
private LocalDate date;
当我写这个的时候,一切都很好..
String sqlRequest = "select insurer from stock where date='2021-01-01'";
Query query = entityManager.createNativeQuery(sqlRequest);
List<Object[]> records = query.getResultList();
但是当我想使用 setParameter 函数时..
String sqlRequest = "select insurer from stock where date=:param";
Query query = entityManager.createNativeQuery(sqlRequest);
query.setParameter("param", "2022-03-11");
List<Object[]> records = query.getResultList();
我遇到了这个问题..
No operator matches the given name and argument types. You might need to add explicit type casts.
有什么想法吗?
我认为是因为您试图将参数设置为 String 类型而不是 Date。
您应该尝试将 LocalDate 设置为时间而不是“2022-03-11”。
我使用 EntityManager 创建 nativeQuery。 我的数据库是 Postgres 数据库。 我请求的日期字段是这样模型化的..
@Column(name = "date", columnDefinition = "date", nullable = false)
private LocalDate date;
当我写这个的时候,一切都很好..
String sqlRequest = "select insurer from stock where date='2021-01-01'";
Query query = entityManager.createNativeQuery(sqlRequest);
List<Object[]> records = query.getResultList();
但是当我想使用 setParameter 函数时..
String sqlRequest = "select insurer from stock where date=:param";
Query query = entityManager.createNativeQuery(sqlRequest);
query.setParameter("param", "2022-03-11");
List<Object[]> records = query.getResultList();
我遇到了这个问题..
No operator matches the given name and argument types. You might need to add explicit type casts.
有什么想法吗?
我认为是因为您试图将参数设置为 String 类型而不是 Date。
您应该尝试将 LocalDate 设置为时间而不是“2022-03-11”。