【问题标题】:how to get entities with many to may dependency如何获得具有许多可能依赖的实体
【发布时间】: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


    【解决方案1】:

    应该就这么简单……

    User user = userRepository.findById(100L);
    Set<Projects> projects = user.getProjects();
    

    由于您的映射,JPA 负责其余的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2014-07-25
      • 2021-12-08
      • 1970-01-01
      • 2015-09-08
      相关资源
      最近更新 更多