由于在许多服务类中有许多重复的代码,我决定将其移动到一个基本服务类中,然后重用它。
public class BaseService<ENTITY, ID> {
@Autowired
private BaseDao<ENTITY, ID> baseDao;
protected boolean isExist(ENTITY e) {
Map<Field, Object> allValues = ReflectUtils.getAllValues(e);
//...
}
}
在isExist(ENTITY e)
方法中,我想调用一个baseDao方法来查找一个实体(在运行时它必须知道确切的实体)并将allValues
传递给它。基本上,我想知道是否可以使用Spring Data这样做smth:
public interface BaseDao<ENTITY, ID> extends JpaRepository<ENTITY, ID> {
Optional<ENTITY> findByFields(Map<Field, Object> allValues);
}
1条答案
按热度按时间ejk8hzay1#
你不能通过提供
Map
参数给一个repository方法来做到这一点,但是可以通过将反射方法与spring的Query By Example API相结合来实现。简化示例:可能有用的问题: