contains

一对多或者多对多时,如A对象中有多个B,即List<B> bs;

如果想要知道此bs中是否有哪一个B的name为csdn。

此时用contains有些不切合实际。这时可以用criteria查询。

DetachedCriteria criteria = DetachedCriteria.forClass(Course.class);
		criteria.createAlias("ips", "ips")
		.add(Restrictions.eq("ips.address","192.168.88.1"));
		criteria.add(Restrictions.eq("id",course.getId()));
		int count = courseService.parsel(criteria);
		
        if(count==0){
        }

这个是一个Course中有多个IP,要查看这个Ip中是否有address为192.168.88.1。

底层dao:

public int parsel(DetachedCriteria criteria) {
		Session session = (Session) this.entityManager.getDelegate();
		Criteria c = criteria.getExecutableCriteria(session);
		
		int count  = ((Number)(c.setProjection(Projections.rowCount()).uniqueResult())).intValue();
		return count;
	}


你可能感兴趣的:(contains)