首页 > 解决方案 > 在 SpringBoot 中加入返回 null 但 MySQL 返回 4 行

问题描述

发件人实体:


@Entity(name="MESSAGES")
public class MessageSender {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer message_id;

    private Integer sender_id;
    private String subject;

    private String body;

    @Lob
    @Column(name = "attachment", columnDefinition = "BLOB")
    private byte[] attachment;

    private Timestamp sent_date;
    private Integer parent_message_id;

    private String trigger;

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @PrimaryKeyJoinColumn(name = "message_id")
    private MessageRecipient message_recipient ;

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @PrimaryKeyJoinColumn(name = "message_id")
    private TimeTrigger timeTrigger ;

    //getters and setters
    }
}

接收实体:

@Entity(name = "MESSAGE_RECIPIENT")
public class MessageRecipient {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer message_recipient_id;

    private Integer recipient_id;
    private Integer recipient_group_id;
    private Integer message_id;
    private String notification_sent;
    private String is_read;

    @OneToOne(fetch=FetchType.LAZY, mappedBy="message_recipient")
    private MessageSender message_sender;

    //getters and setters

加入代码:

public interface MessageSenderRepository extends CrudRepository<MessageSender, Integer> {
    @Query("select m.message_id, m.message_recipient from MESSAGES m")
    List<MessageSender> fetchMessagesInnerJoin();
}

当我通过控制器访问 API 时,输出为空。但是,我知道应该返回 4 行,当我在 MySQL 上执行 Join 查询时,它可以工作。我究竟做错了什么?

标签: hibernatespring-bootjoin

解决方案


推荐阅读