如果你想在http://github.com/moesio/seimos
節省一些代碼使用Seimos舉個例子,你可以使用標準如下:
Criteria criteria = session.createCriteria(Cat.class);
criteria.add(Restrictions.like(「description」, 「Pap」)
.addOrder(Order.asc(「description」);
Criteria subCriteria = criteria.createCriteria("kind", "kind");
subCriteria.add(Restrictions.eq("description", "persa"));
Criteria anotherSubCriteria = subCriteria.createCriteria("anAssociation","anAssociation");
anotherSubCriteria.add(Restrictions.eq("attribute", "anything"));
criteria.setResultTransformer(new AliasToBeanResultTransformer(Cat.class));
criteria.crateAlias(「kind.anAssociation」, 「kind_anAssociation」);
criteria.setProjections(Projections.projectionList()
.add(Projections.alias(Projections.property(「id」), 「id」))
.add(Projections.alias(Projections.property(「kind.id」, 「kind.id」))
.add(Projections.alias(Projections.property(「kind.anAssocation.attribute」, 「kind.anAssociation.attribute」))
List cats = criteria.list();
但如果你想節省一些代碼,你可以使用Seimos和代碼只是
Filters filters = new Filters();
filters.add(new Filters(「description」, 「Pap」)
.add(new Filter(「description」))
.add(new Filter("kind.description", "persa"))
.add(new Filter("kind.anAssociation.attribute", "anything"));
List<Cat> cats = dao.find(filters);
因此,可以考慮使用http://github.com/moesio/seimos
感謝大家的幫助和原諒我的錯誤,但我手動編寫示例代碼。我認爲這種方式對我來說是更好的解決方案! – NikolayGS 2010-01-29 22:48:44