springbootJpa + QueryDsl查询组件的联合运用<记录>
pom.xml中加入依赖:
<!-- QueryDSL -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
业务服务层:<示例>
//引入JPA EntityManager
@PersistenceContext
private EntityManager entityManager;
// 今日累计津贴
BigDecimal todaySubsidyTotal = new JPAQuery<>(entityManager)
.select(QSenderRewarding.senderRewarding.amount.sum())
.from(QSenderRewarding.senderRewarding, QAgent.agent, QSender.sender)
.where(QAgent.agent.cityCode.eq(QSender.sender.cityId)//代理商和配送员关联
.and(QSender.sender.id.eq(QSenderRewarding.senderRewarding.senderId))//配送员和配送员奖励关联
.and(QSenderRewarding.senderRewarding.createTime.between(TimeUtils.today(), Instant.now()))//配送员奖励时间限制
.and(QAgent.agent.id.eq(agentId)))//根据传入agentId找到对应代理商信息
.fetchOne();//返回类型
JPAQuery每次查询都需要重新new下

浙公网安备 33010602011771号