我的要求是在域对象中包含很少的自定义字段。这些字段可能因客户而异。
我们正在使用Spring Data JPA来执行查找程序。 Spring数据隐式提供域的静态字段的查找器,也可以处理对象图中字段的查找器。
我想知道是否有办法在自定义字段中查找数据?有人可以建议我实现同样的策略。以下是我的域类的示例。
公共类员工{
私人字符串名称;
私人字符串年龄;
私人地图customeFields; (可能因客户而异)
}
我正在考虑重写QueryLookupStrategy并在PartTreeJpaQuery的行上创建我的CustomJpaQuery来实现它。有没有更好的方法? spring数据jpa是否提供了一种简单的机制来覆盖查询创建机制?
答案 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)