Я новичок в разработке отдыха с помощью Crudrepository. Мне было интересно правильный способ обработки соединений?@Service
public class MoodService {
@Autowired
private MoodRepository moodRepository;
public Mood createMood(Mood mood) {
return moodRepository.save(mood);
}
public Mood getMoodById(Long id) {
return moodRepository.findById(id).orElse(null);
}
public List getAllMoods() {
return (List) moodRepository.findAll();
}
public void deleteMood(Long id) {
moodRepository.deleteById(id);
}
public Mood updateMood(Long id, Mood updateMood) {
Mood existingMood = moodRepository.findById(id).orElse(null);
if (existingMood != null) {
Mood newMood = new Mood(updateMood.getUserId(), updateMood.getDate(), updateMood.getMood(), updateMood.getDescription());
return moodRepository.save(newMood);
}
return null;
}
}
< /code>
Если бы я сделал это в SQL, чтобы запросить DB, я бы сделал что -то подобное .. < /p>
SELECT * FROM USERS u
LEFT JOIN MOODS m ON u.id = m.USER_ID
LEFT JOIN STRESS s ON u.id = s.USER_ID
WHERE (m.MOOD = 1 OR m.MOOD = 2) AND (m.MOOD = 3 AND (s.STRESS = 4 OR s.STRESS = 5))
< /code>
Я предполагаю, что мне понадобится пользовательский контроллер, который обработал бы этот запрос, но мне нужно включить класс настроения и стресса внутри класса пользователя? < /p>
@Getter
@Setter
@Entity
@NoArgsConstructor
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(length = 100)
private String name;
@Column(length = 100)
private String userName;
@Column(length = 100)
private String zipCode;
User(String userName, String name, String zipCode) {
this.name = name;
this.userName = userName;
this.zipCode = zipCode;
}
@ManyToMany
Stress stress;
@ManyToMany
Mood mood;
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... itory-rest