java - JPA问题@OneToMany - 如何从数据库获取特定对象?

标签 java spring jpa

我有 UserSeries 实体。用户有系列列表。

public class User {

    @Id
    @GeneratedValue
    private int id;

    private String userName;
    private String password;
    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name = "user_id")
    private List<Series> series = new ArrayList<>();
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="series")
public class Series {

    @Id
    @GeneratedValue
    private int id;

    private String name;
    private String year;
    private String photo; //as an url
    private String description;
    private float totalScore;
    private float score;

    User user;
}

我想获取分配给特定用户的系列。 在系列服务中,我执行以下操作来获取系列:

@Override
public List<Series> getAllSeries() {
    return seriesRepository.findAll();
}

但是我从数据库中获取了所有系列。有人可以告诉我我做错了什么吗?我应该在请求中传递用户吗?

最佳答案

您将获得系列,因为您使用findAll()查询系列存储库。

如果你想获取属于特定用户的Series,只需将userId传递给相应的方法即可,例如:

@Override
public List<Series> getSeriesByUserId(int userId) {
   return seriesRepository.findByUserId(userId);
}

关于java - JPA问题@OneToMany - 如何从数据库获取特定对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63549133/

相关文章:

java - 如何在 Java 中延迟 MouseOver?

java - Hibernate 无法判断对象是代理还是真实对象

java - 根据 DispatcherServlet 使用 ContextLoaderListener

java - 将 JPA AttributeConverter 用于 boolean Y/N 字段 : "Unable to render boolean literal value"

java - EJB 计时器在检查状态时挂起

java - 正则表达式查找最后一个大写单词和另一个单词之间的单词

java - 如何在 Spring Boot 应用程序中注册 JavaEE 过滤器?

java - 将 SQL 条件添加到 CriteriaQuery

java - 如何使用 spring-data-jpa 检索聚合函数查询

java - 如何在 JUNG2 中找到图形的绘制位置?