获取Hibernate关联关系的方法

这里介绍获取Hibernate关联关系的pojo。我是指例如一个User(用户)拥有一个many-t
首页 新闻资讯 行业资讯 获取Hibernate关联关系的方法

本文向大家介绍获取Hibernate关联关系的方法,可能好多人还不了解Hibernate关联关系,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

获取Hibernate关联关系的pojo。我是指例如一个User(用户)拥有一个many-to-one的属性Unit(单位),但是有时有些用户的Unit属性为空,如果按单位查询用户的时候那些单位为null的用户就会被遗漏,如何调取呢?这本来是很简单的,但是我想当然的使用了Restriction.eq,但是不行,后来看了手册才发现应该使用Restrictions.isNul。

下面是Test代码:

复制

public void getUsersWhosUnitIsNullByRestrictionsEqNullUnit() {  DetachedCriteria dc = DetachedCriteria.forClass(User.class);  dc.add(Restrictions.eq("unit", null));   Criteria cri = dc.getExecutableCriteria(session);  log.debug("getUsersWhosUnitIsNullByRestrictionsEqNullUnit():" + cri.list().size());  }   /** *//**  * 为了获取一个unit为null的用户,如果传入一个id为null的Unit实例则会报错,无法翻译为SQL  * 错误类型为:org.hibernate.TransientObjectException  * 这也不是我们所期望的结果  */  @Ignore  @Test(expected=TransientObjectException.class)  public void getUsersWhosUnitIsNullByRestrictionsEqUnitNullId() {  Unit unit = new Unit();  log.debug(unit.getId());  DetachedCriteria dc = DetachedCriteria.forClass(User.class);  dc.add(Restrictions.eq("unit", unit));   Criteria cri = dc.getExecutableCriteria(session);  log.debug("getUsersWhosUnitIsNull():" + cri.list().size());  }   /** *//**  * 为了获取一个unit为null的用户正确的方法应该是使用Restrictions.isNull方法  * 因为执行的SQL为:(select * ) from USER_INF this_ where this_.UNIT_ID is null  * 这才是我们所希望的结果  */  @Test  public void getUsersWhosUnitIsNullByRestrictionsIsNull() {  DetachedCriteria dc = DetachedCriteria.forClass(User.class);  dc.add(Restrictions.isNull("unit"));   Criteria cri = dc.getExecutableCriteria(session);  log.debug("getUsersWhosUnitIsNullByRestrictionsIsNull():" + cri.list().size());  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

以上介绍获取Hibernate关联关系的方法。

【编辑推荐】

  1. 简单描述Hibernate单元测试

  2. 概括Hibernate多表关联查询

  3. 浅谈Hibernate Session Factory

  4. 浅析Hibernate加载配置文件

  5. 深入剖析Hibernate核心接口

14    2009-09-25 15:34:42    Hibernate关联关系