【发布时间】:2017-09-13 13:04:48
【问题描述】:
这是我需要通过当前用户 ID 获取的项目实体:
@Entity
@Table(name = "project")
public class Project implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany
@JoinTable(name = "project_user",
joinColumns = @JoinColumn(name="projects_id", referencedColumnName="id"),
inverseJoinColumns = @JoinColumn(name="users_id", referencedColumnName="id"))
private Set<User> users = new HashSet<>();
}
这是我将用来获取产品的用户实体:
@Entity
@Table(name = "jhi_user")
public class User extends AbstractAuditingEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany(mappedBy = "users")
private Set<Project> projects = new HashSet<>();
}
Repositories 类扩展了 JpaRepository 类。如何获取当前用户 ID 的所有项目?
我可以使用的原生 SQL 语句是:
SELECT * FROM project WHERE id IN (SELECT projects_id FROM project_user WHERE users_id = ?);
【问题讨论】:
标签: sql spring spring-boot spring-data spring-data-jpa