Springboot предоставляет нам метод для прямого использования JOINS для таких моделей -
Код: Выделить всё
public class Conversation {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long conversation_id;
@ManyToOne
@JoinColumn(name = "profile_id_one")
private Profile profile;
@ManyToOne
@JoinColumn(name = "profile_id_two")
private Profile profile2;
@OneToMany(mappedBy = "conversation")
private List directMessages;
}
Но мне не хочется их использовать. Мне это кажется волшебным ящиком, я не знаю, как они работают в фоновом режиме, он просто дает мне результат.
Теперь у меня тоже есть эта опция, которую я часто использую - р>
Код: Выделить всё
@Query("SELECT new com.discwords.discwords.model.Profile(CAST(IF(profile_id1 = :profile_id, profile_id2, profile_id1) AS Long), user_id, username, email, picture_url) FROM FriendList JOIN Profile p ON p.profile_id = CAST(IF(profile_id1 = :profile_id, profile_id2, profile_id1) AS Long) WHERE :profile_id IN (profile_id1, profile_id2)")
List
findFriends(@Param("profile_id") long profile_id);
Пожалуйста, подскажите, какой метод мне использовать?
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-or-using