我有一个hibernate和criteria的问题.我有两个班:
public class Place{ long id; String name; Set<Street> streets; } public class Street{ long id; String name; Place place; }
我现在想编写一个方法,它返回一个名称列表的方法,名称如参数中所给出,并且一个名为“参数”的街道.
public List<Place> findplaces(String name,String streetname){ //getSession() gives me a hibernate session Criteria crit = getSession().createCriteria(Place.class,"place"); crit.add(Restrictions.like("name",name+"%")); //Everything works fine until here //Last step: Sort out all places not containing a street named like streetname + "%" }
我尝试了最后一步的不同方法:
//streetList is a list of all streets named like streetname crit.add(Restrictions.in("streets",streetList));
其他方式:
DetachedCriteria strasseCrit = DetachedCriteria.forClass(Street.class,"street"); streetCrit.add(Restrictions.like("street.name",streetname + "%")); streetCrit.createalias("street.place","streetPlace"); streetCrit.add(Restrictions.eqProperty("streetPlace.id","place.id")); streetCrit.setProjection(Projections.property("street.name")); crit.add(Subqueries.exists(streetCrit));
最后方式:
crit.createalias("place.streets","street"); crit.add(Restrictions.like("street.name",streetname + "%")); crit.setResultTransformer(distinctResultTransformer.INSTANCE);
我希望你能理解我的问题,抱歉我的坏英文:(
德国问候:)
菲利普
解决方法
原文地址:https://www.jb51.cc/java/121648.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。