求 queryDsl 在spring boot 2 的通用Service 和Repository

banditgao 2019-05-12 09:24:06

@NoRepositoryBean
public interface BaseRepository<T> extends JpaRepository<T, Long>, JpaSpecificationExecutor<T>, QuerydslPredicateExecutor<T>
{
}

public interface UserJPA extends BaseRepository<User>
{
// ../可以添加命名方法查询
}



@Component
public class UserJPAManage
{
@Autowired
private IUserJPA userJPA;

@Autowired
@PersistenceContext
private EntityManager entityManager;

private JPAQueryFactory queryFactory;

@PostConstruct
public void init()
{
queryFactory = new JPAQueryFactory(entityManager);
}

public void save(User entity)
{
userJPA.save(entity);
}

public User findOneByUserName(final String userName)
{
QUser quser = QUser.user;
return queryFactory.selectFrom(quser).where(quser.name.eq(userName)).fetchOne();
}

//省略更多查询方法


初学queryDsl使用spring boot2 里使用.
这么做每个表都得有interface UserJPA 还得写 UserJPAManage 以便于JPA和 queryDsl 合用,感觉不方便.
但是queyDsl没有save(),所以又离不开jpa

有没有比较通用的BaseService和BaseRepository 可以少造轮子...
谢谢啊!...
...全文
157 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告