2012-03-31 25 views
21

Tôi có hai câu hỏi liên quan @JoinFormula và @OneToMany chú thích:@JoinFormula và @OneToMany nét - tài liệu hướng dẫn người nghèo

  1. Làm thế nào tôi có thể giới hạn số lượng kết quả với @JoinFormula@OneToMany chú thích?

  2. Làm cách nào để xác định rằng id trong biểu thức author = id có nghĩa là 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; 
    } 
    

Như thế này, tôi tiếp tục có pastArticles trống rỗng, ngay cả khi tôi loại bỏ các schedule < phần của mệnh đề.

Cảm ơn!

+0

F hoặc 2 bạn không thể, không biết nếu 1 là có thể. Có thể 1 có thể sử dụng giới hạn truy vấn SQL. – siebz0r

+0

Đối với giới hạn, tôi thấy điều này: http://stackoverflow.com/questions/7894931/onetomany-mapping-list-size-limit – siebz0r

Trả lời

10

Trả lời 1:

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

Trả lời 2: (chỉ là ví dụ như vậy)

public class A{ 

    @Id 
    @GeneratedValue 
    private Integer id; 

    private String uuid; 

    ... 
    } 

lớp khác

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

Một số giải thích sẽ tốt đẹp. Tôi biết rằng tôi có lẽ quá ngu ngốc, nhưng tôi không hiểu cách chú thích trong câu trả lời 2 làm việc cùng nhau – Blauhirn

1

bạn muốn được tốt hơn bằng cách sử dụng @Where chú thích để giới hạn kết quả

+0

Bạn sẽ làm điều này như thế nào để thỏa mãn số điểm 2? – tamuren

Các vấn đề liên quan