【问题标题】:Adding constraint to an association向关联添加约束
【发布时间】:2026-02-25 16:40:01
【问题描述】:

这是我在用户和帖子之间建立一对多关系的交易

@Entity
public class User extends Model {
...
  @OneToMany(cascade = CascadeType.ALL, targetEntity = Post.class, mappedBy = "author")
  @OrderBy("createdAt DESC")
  public List<Post> posts;
...
}

@Entity
public class Post extends Model {
...
  public int privacy; // 0=public, 1=private
  @ManyToOne
  public User author;
...
}

效果很好...现在我想检索用户的公开帖子?当然,遍历结果并删除私人帖子不是一种选择,我最终需要做一些分页,那会很头疼。是否有一些注释可以帮助我解决这个问题?

【问题讨论】:

    标签: jpa playframework jpa-2.0


    【解决方案1】:

    这样的?

    User author = User.findById(1);  
    int pageNumber = 1;
    int pageSize = 10;
    Post.find("FROM Post WHERE author = ? AND privacy = 0", author).fetch(pageNumber, pageSize);
    

    【讨论】:

    • 我最终做了这样的事情,但我想知道是否有更优雅的方式来做到这一点。我习惯了rails的范围。但不幸的是,JPA 没有 ActiveRecord 灵活