Tôi có ánh xạ @ManyToMany nơi bảng tự tham chiếu qua bảng ánh xạ và chúng tôi muốn đặt hàng trên id đơn đặt hàng trong bảng ánh xạ thực tế, nhưng thấy khó cấu hình .Sắp xếp theo giá trị bảng ánh xạ trong Hibernate
Chúng tôi có thể thực hiện nó trong xml ngủ đông, do đó, tự nhiên cho rằng sự hỗ trợ có trong chú thích JPA. Có ai biết làm thế nào chúng ta có thể đặt hàng trên một giá trị trong bảng lập bản đồ?
bảng là:
wap_site_components
intid
strname
intcomponentdef
dtmcreated
intcustomer
và bảng vẽ bản đồ mà tự tài liệu tham khảo là:
wap_site_component_relations
intid
intparent (references intid in wap_site_components)
intchild (references intid in wap_site_components)
intorder (this is the value we want to order the collection on)
Trong Hibernate Chú thích chúng ta có:
@ManyToMany (fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable (name = "wap_site_component_relations",
joinColumns = {@JoinColumn (name = "intparent", referencedColumnName = "id") },
inverseJoinColumns = {@JoinColumn (name = "intchild", referencedColumnName = "id") })
public Set<WapComponent> getChildren() {
return children;
}
Đây là cách chúng tôi thực hiện trong hibernate xml:
<set
name="children"
table="wap_site_component_relations"
lazy="true"
cascade="none"
sort="unsorted"
order-by="intorder"
mutable="false"
>
<cache
usage="read-only"
/>
<key
column="intparent"
>
</key>
<many-to-many
class="se.plusfoursix.im46.data.wap.WapComponent"
column="intchild"
outer-join="auto"
/>
</set>
Vì vậy, chúng tôi muốn sử dụng thẻ @OrderBy nhưng không thể tham chiếu giá trị intorder trong bảng ánh xạ. Bất kỳ ý tưởng? Cảm ơn.
(Chúng tôi đã cố gắng một @OrderBy (intorder) trong bộ sưu tập trẻ em trong mã nhưng điều đó không làm việc ra cho chúng ta)
Tôi cũng nên thêm ở đây rằng chúng ta có thể làm điều này bằng cách làm cho bảng vẽ bản đồ một bean, nhưng không muốn làm điều này. – bowsie