Спящий пользовательский запрос с вызовом метода внутри - PullRequest
0 голосов
/ 06 марта 2019

Я хотел бы получить запрос, подобный этому:

@Query("select p from Purchase join p.customer c where c.username = :username and p.getPurchaseDate() >= :fromDate and p.getPurchaseDate() < :toDate")
    List<Purchase> findByUsernameAndByDate(@Param("fromDate") Date fromDate, @Param("toDate") Date toDate, @Param("username") String username);

где getPurchaseDate () - это вызов метода внутри запроса. Я знаю, что не могу этого сделать, но мне интересно, есть ли другой способ сделать это. Проблема заключается в том, что дата покупки, возвращаемая методом получения, не является атрибутом класса «Покупка».

Это класс покупки, если необходимо:

@Entity
public class Purchase {

    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private Integer purchaseId;

    @ManyToOne
    @JoinColumn(name = "customer_id")
    private User customer;

    @ElementCollection
    @MapKeyEnumerated(value = EnumType.STRING)
    @CollectionTable(name = "purchase_status")
    @MapKeyColumn(name = "status")
    @Column(name = "date")
    private Map<PurchaseStatus, Date> statusTransitions = new HashMap<>();
    .
    .
    .

Дата покупки находится внутри карты состояния переходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...