Hej, mam poniższą encję, w której jest pole daty. Zaistaniała potrzeba wykonania raportu w oparciu o tą encję i encje zależne ale tak by agregować dane po numerze tygodnia a nie po dacie. Dopisałem metodę getWeekNumber. Czy jest możliwość abym zwrócił dane, tak wprost, z numerem tygodnia zamiast daty? Pytam co by się nie narobić :)
Inaczej pewnie musiałbym wrzucić zwrócone dane do jakiegoś DTO i je wyświetlić w raporcie. W tej chwili po prostu robię repository.findByCosTam()
@Entity
@Audited
@Data
@EqualsAndHashCode
public class Document {
public Document() {
this.status = Status.NEW;
}
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@Enumerated(value = STRING)
private Status status;
@OneToOne(cascade = {PERSIST, MERGE}, fetch = EAGER)
@JoinColumn(name = "client_card_id")
private ClientCard clientCard;
@NotNull
@DateTimeFormat(iso = ISO.DATE)
private LocalDate date;
public enum Status {
NEW, PRE, CONFIRMED
}
public int getWeekNumber(LocalDate date) {
WeekFields weekFields = WeekFields.of(Locale.getDefault());
return date.get(weekFields.weekOfWeekBasedYear());
}
}