我有这个实体:
@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;
我想通过meet获得参与者
@Query("SELECT p FROM Participant p where p.meet= :id")
Participant findByMeet(@Param("id") Long id);
如何获取属于会议的参与者列表
发布于 2019-05-21 09:32:52
假设你在Participant
中有一个Long
的@Id
,它应该是这样的。
@Repository
public interface ParticipantRepository implements CrudRepository<Participant, Long> {
List<Participant> findAllByMeet(Meet meet);
}
Spring Data将为您动态提供实现。
发布于 2019-05-21 09:39:18
首先,在域模型中添加文件。
@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<>();
}
https://stackoverflow.com/questions/56229794
复制相似问题