Spring Data JPA finder用于动态字段作为Map

时间:2013-03-01 17:40:56

标签: spring-data-jpa dynamic-finders

我的要求是在域对象中包含很少的自定义字段。这些字段可能因客户而异。

我们正在使用Spring Data JPA来执行查找程序。 Spring数据隐式提供域的静态字段的查找器,也可以处理对象图中字段的查找器。

我想知道是否有办法在自定义字段中查找数据?有人可以建议我实现同样的策略。以下是我的域类的示例。

公共类员工{

私人字符串名称;

私人字符串年龄;

私人地图customeFields; (可能因客户而异)

}

我正在考虑重写QueryLookupStrategy并在PartTreeJpaQuery的行上创建我的CustomJpaQuery来实现它。有没有更好的方法? spring数据jpa是否提供了一种简单的机制来覆盖查询创建机制?

1 个答案:

答案 0 :(得分:2)

如果您正在使用hibernate(不确定其他JPA实现),您可以添加带有@Query注释的方法,如下所示:

@Query("select e from Employee as e where e.customeFields[:key] = :value")
List<Employee> findSomeHow(@Param("key") String key, @Param("value") String value)