Hibernate 中未定义的过滤器参数
Undefined filter parameter in Hibernate
我正在尝试将 LocalDate 映射到 SQL 日期,但收到此错误:
java.lang.IllegalArgumentException: Undefined filter parameter
[afterDateLocal]
我无法提供可重现的示例,但这是 ListingRepositoryImpl 的代码:
if (!queries.get("checkInDate").get(0).equals("undefined")) {
Filter afterDateFilter = session.enableFilter("afterDateFilter");
String afterDate = queries.get("checkInDate").get(0);
LocalDate afterDateLocal = LocalDate.parse(afterDate);
System.out.println("After date: " + afterDateLocal);
afterDateFilter.setParameter("afterDateLocal", afterDateLocal);
} else {
session.disableFilter("afterDateFilter");
}
实体列表中定义的过滤器:
@Entity
@Table(name="listing")
@FilterDefs({
@FilterDef(name="priceFilter", parameters=@ParamDef(name="priceComparison",type="double")),
@FilterDef(name="beforeDateFilter", parameters=@ParamDef(name="beforeDateLocal", type="date")),
@FilterDef(name="afterDateFilter", parameters=@ParamDef(name="afterDateLocal", type="date"))
})
@Filters({
@Filter(name="priceFilter", condition="price <= :priceComparison"),
@Filter(name="beforeDateFilter", condition=":beforeDateLocal <= date"),
@Filter(name="afterDateFilter", condition=":afterDateLocal >= date")
})
我正在使用 Hibernate 5.5.7,所以我希望 LocalDate 能正常工作。
date
未在数据库中定义,这就是我收到错误的原因。
我在使用 LocalDate 创建过滤器时遇到了同样的问题(“未定义的过滤器参数日期值”),我在类型属性(类型 =“java.time.LocalDate”)上尝试了这个,它对我有用。
我正在尝试将 LocalDate 映射到 SQL 日期,但收到此错误:
java.lang.IllegalArgumentException: Undefined filter parameter [afterDateLocal]
我无法提供可重现的示例,但这是 ListingRepositoryImpl 的代码:
if (!queries.get("checkInDate").get(0).equals("undefined")) {
Filter afterDateFilter = session.enableFilter("afterDateFilter");
String afterDate = queries.get("checkInDate").get(0);
LocalDate afterDateLocal = LocalDate.parse(afterDate);
System.out.println("After date: " + afterDateLocal);
afterDateFilter.setParameter("afterDateLocal", afterDateLocal);
} else {
session.disableFilter("afterDateFilter");
}
实体列表中定义的过滤器:
@Entity
@Table(name="listing")
@FilterDefs({
@FilterDef(name="priceFilter", parameters=@ParamDef(name="priceComparison",type="double")),
@FilterDef(name="beforeDateFilter", parameters=@ParamDef(name="beforeDateLocal", type="date")),
@FilterDef(name="afterDateFilter", parameters=@ParamDef(name="afterDateLocal", type="date"))
})
@Filters({
@Filter(name="priceFilter", condition="price <= :priceComparison"),
@Filter(name="beforeDateFilter", condition=":beforeDateLocal <= date"),
@Filter(name="afterDateFilter", condition=":afterDateLocal >= date")
})
我正在使用 Hibernate 5.5.7,所以我希望 LocalDate 能正常工作。
date
未在数据库中定义,这就是我收到错误的原因。
我在使用 LocalDate 创建过滤器时遇到了同样的问题(“未定义的过滤器参数日期值”),我在类型属性(类型 =“java.time.LocalDate”)上尝试了这个,它对我有用。