我有一个域对象Item
:
商品字段:a
,b
,c
它在现实中有更多的领域。
我知道我可以创建像:
这样的方法 findByAAndB(...)
在我的自定义查找方法
@Query(SELECT ... WHERE ...)
但我仍然想知道是否有更好的解决方案:考虑到我可能有一堆字段可以同时查询,最简单的查询items
表是什么?
如果我有如下所示的方法,是否有办法自动将!= null
的字段映射到SELECT
?
findBy(Item prototype)
答案 0 :(得分:1)
public class Item{
String a,b,c;
}
Item item=new Item();
item.setA("a");
Example<Item> itemExample=ExampleOf(item);
List<Item> res=itemRepository.findAll(example);
答案 1 :(得分:0)
您可以使用实体管理器创建自定义查询并创建动态查询。为此,您必须使用默认-1
定义所有变量,您必须在查询中使用,然后获取所有变量,然后检查值是否更改,如果将add变量更改为查询并执行它。
离。
StringBuilder tempQuery = new StringBuilder("select " + select + " FROM
Area area ");
// cityId
if (cityId != -1) {
tempQuery.append(" and ");
tempQuery.append(" area.FCity.cityId = :cityId ");
}
// rId
if (rId != -1) {
tempQuery.append(" and ");
tempQuery.append(" area.FRestaurantCenter.FRestaurant = :rId ");
}
return tempQuery.toString();