Субъект отправителя:
@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 строки, и когда я выполняю запрос Join на MySQL, он работает. Что я делаю не так?