Richtige Möglichkeit, Verbindungen mit Crudrepository -Ruhe zu handhaben
Posted: 03 Apr 2025, 02:29
Ich bin neu in der Entwicklung von Pause mit crudrepository. Ich habe mich gefragt, wie sich die richtigen Art und Weise, um miteinander umzugehen, miteinander umgehen?
Code: Select all
@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>
Wenn ich dies in SQL tun würde, um die DB abzufragen, würde ich so etwas tun. < /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>
Ich nehme an, ich würde einen benutzerdefinierten Controller benötigen, der diese Anfrage umgehen würde, aber muss ich die Stimmung und die Stressklasse innerhalb der Benutzerklasse einbeziehen? < /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;
}