hibernate - 在 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 查询时,它可以工作。我究竟做错了什么?
解决方案
推荐阅读
- django - Django print data of radio button?
- java - 如何更改 Google 的 Flogger(Java 的流畅日志记录 API)的日期格式?
- events - 如何从http调用的响应中获取城市和州的值,以获取角度6中填写pin码的事件
- c# - 忽略异常与显式抛出异常
- java - Java 何时刷新 OutputStream?
- ruby-on-rails - 遇到的错误是: dial tcp [::1]:3000: getsockopt: connection denied
- django - is_staff 字段未显示在 Django 管理员中
- c++ - 为什么 Fmtflags 被指定两次 - 一次作为枚举的一部分,另一个实例作为静态 const 变量
- javascript - 当用户播放其他音频之一时暂停播放音频的简单方法是什么?
- amazon-web-services - 通过 VPC 对等访问 AWS Elasticsearch VPC 终端节点