Как исправить этот запрос в спящем режиме? - PullRequest
0 голосов
/ 24 июня 2019

Итак, у меня есть этот запрос, как показано ниже:

/**
 * @param partnerId .
 * @return Notification
 */
@Query("SELECT p FROM PartnerNotification p "
        + "INNER JOIN account AS account " + "WHERE account.accountId = :partnerId ")
 PartnerNotification findNotificationByPartnerId(@Param("partnerId") Integer partnerId);

где я пытаюсь выделить все столбцы в уведомлении партнера @Entity где идентификатор партнера равен параметру. partner_id - это внешний ключ в моей таблице, поэтому у моих сущностей есть:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "account_id")
private Account account;

и, возможно, в этом вся проблема, которую я пытался проверить, какую у меня была идея, но, как и в первый раз, я не смог найти, в чем дело.

ТАК, я попробовал:

//    /**
//     * @param partnerId partnerId.
//     * @return PartnerNotification
//     */
//    PartnerNotification findNotificationByPartnerId(Integer partnerId);

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "account_id")
private Account account;

/**
 * @param partnerId .
 * @return Notification
 */
@Query("SELECT p FROM PartnerNotification p "
        + "JOIN p.account acc WHERE acc.accountId = :partnerId ")
 PartnerNotification findNotificationByPartnerId(@Param("partnerId") Integer partnerId);

и

 @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "account_id")
    private Account account;

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Попробуйте это

@Query(SELECT p FROM PartnerNotification p JOIN p.account acc WHERE acc.accountId = :partnerId)

Надеюсь, это поможет!

0 голосов
/ 24 июня 2019

На самом деле вам не нужно никаких пользовательских запросов.

List<PartnerNotification> findByAccountId(Integer partnerId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...