Skip to content

Instantly share code, notes, and snippets.

@soufDev
Created September 17, 2017 13:59
Show Gist options
  • Save soufDev/1ca6d56ed36326f4ab26950571cab915 to your computer and use it in GitHub Desktop.
Save soufDev/1ca6d56ed36326f4ab26950571cab915 to your computer and use it in GitHub Desktop.
package com.globbiz.v3.repository;
import com.globbiz.v3.domain.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
* Created by amine on 17/04/2017.
*/
public interface UserRepository extends MongoRepository<User,String>{
Optional<User> findOneById(String userID);
Optional<User> findOneByUsername(String username);
Optional<User> findOneByEmail(String email);
@Query("{ userGroupId: ?0 }")
List<User> findByUserGroupId(String groupdId);
Page<User> findAll(Pageable pageable);
List<User> findAllByUsername(String username);
List<User> findAllByFirstName(String firstName);
List<User> findAllByLastName(String lastName);
List<User> findAllByEmail(String email);
List<User> findAllByActivated(boolean activated);
@Query("{ userGroupId: ?0 }")
List<User> findAllByUserGroupId(String groupdId);
List<User> findAllByFirstNameAndLastName(String firstName, String lastName);
List<User> findAllByCreationDateBetween(Date creationDate, Date creationDate1);
List<User> findAllByFirstNameAndLastNameAndEmail(String firstName, String lastName, String email);
List<User> findAllByFirstNameAndLastNameAndActivated(String firstName, String lastName, boolean activated);
List<User> findAllByFirstNameAndLastNameAnd(String firstName, String lastName, boolean activated);
@Query("{ userGroupId: ?2 }")
List<User> findAllByFirstNameAndLastNameAndUserGroupId(String firstName, String lastName, String group);
List<User> findAllByFirstNameAndLastNameAndCreationDateBetween(String firstName, String lastName, Date creationDate, Date creationDate1);
@Query(""
+ "{ $or: [ { $where: '?0==null' }, {username: ?0} ] }, "
+ "{ $or: [ {firstName: ?1}, { $where: '?1 == null' } ] }, "
+ "{ $or: [ { $where: '?2 == null' }, {lastName: ?2} ] }, "
+ "{ $or: [ { $where: '?3 == null' }, {email: ?3} ] }, "
+ "{activated: ?4}, "
+ "{ $or: [ { $where: '?5 == null' }, {userGroupId: ?5} ] }, "
+ "{ $or: [ { $where: '?6 == null' }, { $where: '?7 == null' }, creationDate: { $gte: ?6, $lte: ?7 }] }"
)
List<User> findByParams(String userName, String firstName, String lastName, String email, boolean activated,
String groupId, Date creationDate,
Date creationDate1);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment