у меня есть эта сущность:
@Entity
@Table(name = "Participant")
public class Participant {
@Column(name = "user")
User user;
@Column(name = "meet")
Meet meet;
@Enumerated(EnumType.STRING)
@Column(name = "rol")
Rol rol;
А класс Meet это:
@Entity
@Table(name = "Meet")
public class Meet implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(unique = true, name = "name")
private String name;
@Enumerated(EnumType.STRING)
@Column(name = "state")
private State state;
я хочу получить участников через встречу
@Query("SELECT p FROM Participant p where p.meet= :id")
Participant findByMeet(@Param("id") Long id);
Как получить список участников, которые входят в Meet
@Deadpool — это класс, это группа пользователей




Предполагая, что у вас есть @Id из Long в Participant, это должно быть что-то вроде этого.
@Repository
public interface ParticipantRepository implements CrudRepository<Participant, Long> {
List<Participant> findAllByMeet(Meet meet);
}
Spring Data предоставит вам динамическую реализацию.
Прежде всего, добавьте поля в модель предметной области.
@Entity
@Table(name = "Participant")
public class Participant {
@Column(name = "user")
User user;
@ManyToOne
@Column(name = "meet_id") // It's a foreign key of Participant
Meet meet;
@Enumerated(EnumType.STRING)
@Column(name = "rol")
Rol rol;
}
@Entity
@Table(name = "Meet")
public class Meet implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(unique = true, name = "name")
private String name;
@Enumerated(EnumType.STRING)
@Column(name = "state")
private State state;
@OneToMany(mappedBy = "Meet", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Participant> participants = new HashSet<>();
}
это хорошая колонка ManyToOne (name = "meet_id")? Я думаю, что это должно быть onetoone?
Зависит от вашего отношения к объекту домена. Потому что я думал, что это @ManyToOne между Meet и Участником в вашем дизайне.
что это
Meet?