package com.querydsl.example.jpa.repository; import com.google.inject.persist.Transactional; import com.querydsl.core.types.Predicate; import com.querydsl.example.jpa.model.User; import java.util.List; import static com.querydsl.example.jpa.model.QUser.user; @Transactional public class UserRepository extends AbstractRepository<User> { @Override public User findById(Long id) { return find(User.class, id); } public User save(User user) { return persistOrMerge(user); } public List<User> findAll(Predicate expr) { return selectFrom(user).where(expr).fetch(); } public List<User> all() { return selectFrom(user).fetch(); } }