package com.github.geequery.springdata.test.repo; import java.util.Collection; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.query.Param; import com.github.geequery.springdata.annotation.IgnoreIf; import com.github.geequery.springdata.annotation.ParamIs; import com.github.geequery.springdata.repository.GqRepository; import com.github.geequery.springdata.test.entity.Foo; public interface FooDao extends GqRepository<Foo, Integer> { /** * 此处是非Native方式,即E-SQL方式 * * @param name * @return */ public Foo findByName(@Param("name") @IgnoreIf(ParamIs.Empty) String name); public List<Foo> findByNameLike(@Param("name") String name); public int countByNameLike(@Param("name") String name); public List<Foo> findByNameContainsAndAge(String name, int age); public List<Foo> findByNameStartsWithAndAge(@Param("age") int age, @Param("name") String name); /** * 根据Age查找 * * @param age * @return */ public List<Foo> findByAgeOrderById(int age); /** * 根据Age查找并分页 * * @param age * @param page * @return */ public Page<Foo> findByAgeOrderById(int age, Pageable page); /** * 使用in操作符 * * @param ages * @return */ public List<Foo> findByAgeIn(Collection<Integer> ages); // public List<Foo> updateAgeById(int age,int id); }