0
我正在尋找一種方法來在Spring中使用hibernate條件沿着其組合屬性傳遞對象的Collection,java.util.map。如何使用休眠條件沿着組屬性拉對象的結果集
示例域
MyDomain {
private String x;
private String y;
private String pos;
//---Getters & Setters ----
}
我喜歡具有
Map<String(X),Map<String(Y),List<MyDoamin>>
集合。爲此,我使用分離標準。到目前爲止,我能夠組屬性,但我不知道如何在結果集中添加整個對象,我可以使用結果轉換器在Map中進行進一步轉換。
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(MyDomain.class); detachedCriteria .setProjection( Projections.projectionList().add(Projections.groupProperty(X)) .add(Projections.groupProperty(Y)) ).addOrder(Order.asc(X)) .addOrder(Order.asc(Y)) Object o = this.getHibernateTemplate().findByCriteria(detachedCriteria);
編輯
目前我加載MYDOMAIN的整個列表中DAO類UND initlizing在看起來像服務類映射。
Map<String, Map<String,List<MyDomain>>> ret = new HashMap<String, Map<String, List<MyDomain>>>>(); try { List<MyDomain> myDomains = this.myDomainDao.findAll(); Collections.sort(myDomains); for (MyDomain myDomain : myDomains) { String x = myDomain.getX(); String y = myDomain.getY(); if (ret.get(x) == null) { ret.put(x, new HashMap<String,List<MyDomain>>()); } if (ret.get(x).get(y) == null) { ret.get(x).put(y, new ArrayList<MyDomain>()); } ret.get(x).get(y).add(myDomain); } } catch (Exception e) { this.logger.warn(e); this.logger.debug(e.getMessage()); } return ret;
我的努力是爲了避免上面寫碼服務,並嘗試做它在休眠。
在此先感謝。 Rehman
燁,你是對的。目前我做的和你在文章中提到的一樣,但是我想也許這樣的功能已經在休眠標準中可用了。 – Rehman 2011-12-15 12:47:34