Java 按部件发送带有Spring Boot的电子邮件(带分页)?
我想通过电子邮件从数据库发送有关用户的信息Java 按部件发送带有Spring Boot的电子邮件(带分页)?,java,spring,spring-boot,Java,Spring,Spring Boot,我想通过电子邮件从数据库发送有关用户的信息 @Repository public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT user from User user where user.reportDate >= :ago order by user.reportDate desc") List<User>
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query(value = "SELECT user from User user where user.reportDate >= :ago order by user.reportDate desc")
List<User> findAllWithDateAfter(@Param("ago") LocalDate ago);
}
服务:
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> getUsersForRequiredDays(int days) {
LocalDate daysAgoDate = LocalDate.now().minusDays(days);
return badUtmMarksRepository.findAllWithDateAfter(daysAgoDate);
}
}
方法从senderService发送(在上面的try块中):
public void send()抛出MessagineException、IOException、TemplateException{
MimeMessage MimeMessage=mailssender.createMimeMessage();
List users=userService.getUsersForRequiredDays(interval);//我在这里使用数据库中的信息
设置mimessagesettings(mimessage、subject、emailTo、reportable、from);
mailssender.send(mimeMessage);
}
您的回购
方法应为:
List findAllWithDateAfter(Pageable Pageable,@Param(“ago”)LocalDate ago)代码>
调用该方法时,应执行以下操作:
@Autowired
UserRepository userRepository;
...
int size;
int index;
*** fill the size and index variables ***
PageRequest pageRequest = PageRequest.of(index, size);
userRepository.findAllWithDateAfter(pageRequest, your-other-parameter);
使用“Spring数据分页”的谷歌搜索也会对你有所帮助。签出本指南这是否回答了您的问题?
public class ScheduledMailSenderService {
private final MailSenderService mailSender;
@Scheduled(cron = "${schedule.cron.update}")
public void send() {
log.info("Scheduled sending started");
try {
mailSender.send();
} catch (MessagingException | IOException | TemplateException e) {
log.error("Error occurred while sending email message:: {}", e.toString());
}
log.info("Scheduled sending finished");
}
}
public void send() throws MessagingException, IOException, TemplateException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
List<User> users = userService.getUsersForRequiredDays(interval); //im using info from db here
setMimeMessageSettings(mimeMessage, subject, emailTo, reportTable, from);
mailSender.send(mimeMessage);
}
@Autowired
UserRepository userRepository;
...
int size;
int index;
*** fill the size and index variables ***
PageRequest pageRequest = PageRequest.of(index, size);
userRepository.findAllWithDateAfter(pageRequest, your-other-parameter);