我有这个实体:
@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;
与我见面的班级是:
@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);
我如何获取聚会中的参与者列表
答案 0 :(得分:0)
假设@Id
中Long
中Participant
的{{1}}应该就是这样。
@Repository
public interface ParticipantRepository implements CrudRepository<Participant, Long> {
List<Participant> findAllByMeet(Meet meet);
}
Spring Data将为您动态提供实现。
答案 1 :(得分:0)
首先,将文件添加到域模型中。
@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<>();
}