2013-05-31 65 views
1

我有一個學校表和教室表,它有學校表的外鍵。我想得到教室的capaties是40和學校名稱是「示例」。這是我的通用getAll方法。我想修改這個方法來加入2個表格。問題是該方法仍然必須保持通用。如何使用休眠標準查詢連接表

public <T> List<T> getAll(T genericEntity) { 
    Criteria criteria = getCurrentSession().createCriteria(genericEntity.getClass()); 
    criteria.add(Example.create(genericEntity)); 
    return criteria.list(); 
} 
+0

次還可以通用?你想要一個基因的功能對於n連接或者特別是2個連接?,參數怎麼樣?,你是否試圖爲一切做出某種超級跑道? – Ziul

回答

1

你都應該對象添加到參數列表:

public <T,U> List<T> getAll(T genericEntity1, U genericEntity2) { 
    Criteria criteria = getCurrentSession() 
     .createCriteria(genericEntity1.getClass()).add(Example.create(genericEntity1)) 
     .createCriteria(genericEntity2.getClass()).add(Example.create(genericEntity2)); 
    return criteria.list(); 
} 

你可以稱它爲方式如下:

getAll(classroom, school);