2012-03-31 88 views
21

我有兩個關於@JoinFormula和@OneToMany註釋的問題:@JoinFormula和@OneToMany定義 - 差勁的文檔

  1. 如何限制的結果與@JoinFormula@OneToMany註解多少?

  2. 如何定義id的表達式author = 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; 
    } 
    

這樣,我一直具有pastArticles空,甚至當我刪除該條款的schedule <一部分。

謝謝!

+0

F或2你不能,不知道1是否可能。也許1可以使用SQL查詢限制。 – siebz0r 2012-06-01 12:43:33

+0

至於限制,我發現這個:http://stackoverflow.com/questions/7894931/onetomany-mapping-list-size-limit – siebz0r 2012-06-01 12:48:00

回答

10

答1:

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

答2:(就像這個例子)

public class A{ 

    @Id 
    @GeneratedValue 
    private Integer id; 

    private String uuid; 

    ... 
    } 

其他類

public class B{ 
     @Id 
     @GeneratedValue 
     private Integer id; 

     private String uuidOfA; 



    @ManyToOne 
    @JoinColumnsOrFormulas({ 
    @JoinColumnOrFormula([email protected](value="(SELECT a.id FROM A a WHERE a.uuid = uuid)", referencedColumnName="id")), 
    @JoinColumnOrFormula(column = @JoinColumn("uuidOfA", referencedColumnName="uuid")) 
}) 

    private A a;  
} 
+1

一些解釋會很好。我知道我可能太愚蠢了,但我不明白答案2中的註釋是如何協同工作的 – Blauhirn 2017-02-21 12:17:29

1

你會更好使用@Where註釋限制結果

+0

你會如何做到這一點,以滿足第2點? – tamuren 2012-12-12 19:40:43