2012-07-18 114 views

回答

1

你的問題沒有多大意義。 IndexColumn用於在OneToMany或ManyToMany關聯中將索引分配給List的元素。您只有一個ManyToOne關聯,因此根本沒有列表,因此不需要索引列。

我可以想象你會想要執行一個查詢返回一個父母的所有孩子,並希望他們放在一個特定的索引列表。在這種情況下,你需要一個持久的索引字段添加到您的子實體,執行查詢,通過索引的兒童進行排序,然後創建索引表自己:

List<Child> sortedList = 
    session.createQuery("select c from Child c where c.parent = :parent order by c.index") 
      .setParameter("parent, parent) 
      .list(); 
List<Child> indexedList = new ArrayList<Child>(); 
for (Child child : sortedList) { 
    indexedList.ensureCapacity(child.getIndex() + 1); 
    indexedList.set(child.getIndex(), child); 
} 

對於OneToOne協會,IndexColumn註解真的沒有按沒有任何意義。

+0

謝謝,如果有一個從ManyToOne關係創建的數據庫列中,我可以在註釋中創建此列的索引? – 2012-07-18 11:07:48

+0

我不明白你的意思。 – 2012-07-18 11:26:08

+0

我有對象狀態和對象客戶和客戶之間的manyToOne關係在數據庫我有表狀態和表客戶列「StateID」我怎麼能添加到此列索引註釋。 – 2012-07-18 11:37:08