Java @JoinFormula和@OneToMany定义-文档质量差

Java @JoinFormula和@OneToMany定义-文档质量差,java,hibernate,persistence,Java,Hibernate,Persistence,关于@JoinFormula和@OneToMany注释,我有两个问题: 如何使用@JoinFormula和@OneToMany注释限制结果的数量 如何定义表达式author=id中的id指的是author.id Author { @Id private Long id; @OneToMany @JoinFormula(value = "SELECT a FROM Article a WHERE author = id AND schedule < CUR

关于@JoinFormula和@OneToMany注释,我有两个问题:

  • 如何使用
    @JoinFormula
    @OneToMany
    注释限制结果的数量

  • 如何定义表达式
    author=id
    中的
    id
    指的是
    author.id

    Author {
    
        @Id
        private Long id;
    
        @OneToMany
        @JoinFormula(value = "SELECT a FROM Article a WHERE author = id AND schedule < CURRENT_TIMESTAMP()") // limit = 15
        private List<Article> pastArticles;
    }
    
    作者{
    @身份证
    私人长id;
    @独身癖
    @JoinFormula(value=“从文章a中选择一个,其中author=id,schedule

  • 这样,即使我删除了
    计划您最好还是使用
    @Where
    注释来限制结果,我还是让过去的文章保持空白

    @Size(max=10)
    private List<Comment> commentList;
    
    其他类

    public class B{
          @Id 
          @GeneratedValue
          private Integer id;
    
          private String uuidOfA;
    
    
    
      @ManyToOne
      @JoinColumnsOrFormulas({
      @JoinColumnOrFormula(formula=@JoinFormula(value="(SELECT a.id FROM A a WHERE a.uuid = uuid)", referencedColumnName="id")),
      @JoinColumnOrFormula(column = @JoinColumn("uuidOfA", referencedColumnName="uuid"))
    })
    
         private A a;      
    }
    

    对于2,你不能,不知道1是否可能。也许1可以使用SQL查询限制。至于限制,我发现:一些解释会很好。我知道我可能太笨了,但我不明白答案2中的注释是如何协同工作的
    public class B{
          @Id 
          @GeneratedValue
          private Integer id;
    
          private String uuidOfA;
    
    
    
      @ManyToOne
      @JoinColumnsOrFormulas({
      @JoinColumnOrFormula(formula=@JoinFormula(value="(SELECT a.id FROM A a WHERE a.uuid = uuid)", referencedColumnName="id")),
      @JoinColumnOrFormula(column = @JoinColumn("uuidOfA", referencedColumnName="uuid"))
    })
    
         private A a;      
    }