首页 > 解决方案 > 如何在休眠中修复此查询?

问题描述

所以我有这个查询如下:

/**
 * @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 中选择合作伙伴 ID 与参数相等的所有列。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;

标签: javahibernatespring-boot

解决方案


试试这个

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

希望能帮助到你!


推荐阅读