百度广告
在Hibernate中获取有关联关系的pojo。我是指例如一个User(用户)拥有一个many-to-one的属性Unit(单位),但是有时有些用户的Unit属性为空,如果按单位查询用户的时候那些单位为null的用户就会被遗漏,如何调取呢?这本来是很简单的,但是我想当然的使用了Restriction.eq,但是不行,后来看了手册才发现应该使用Restrictions.isNul。下面是Test代码...
/** *//**
* 因为执行的SQL为:(select * ) from USER_INF this_ where this_.UNIT_ID=''
*/
public void getUsersWhosUnitIsNullByRestrictionsEqNullUnit() {
dc.add(Restrictions.eq("unit", null));
Criteria cri = dc.getExecutableCriteria(session);
}
/** *//**
* 错误类型为:org.hibernate.TransientObjectException
*/
@Test(expected=TransientObjectException.class)
Unit unit = new Unit();
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
log.debug("getUsersWhosUnitIsNull():" + cri.list().size());
* 为了获取一个unit为null的用户正确的方法应该是使用Restrictions.isNull方法
* 这才是我们所希望的结果
@Test
DetachedCriteria dc = DetachedCriteria.forClass(User.class);
log.debug("getUsersWhosUnitIsNullByRestrictionsIsNull():" + cri.list().size());
点击加载更多评论>>