知识大全 hibernate中获取关联属性为null的方式

Posted 属性

篇首语:愿君学长松,慎勿作桃李。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 hibernate中获取关联属性为null的方式相关的知识,希望对你有一定的参考价值。

    在Hibernate中获取有关联关系的pojo 我是指例如一个User(用户)拥有一个many to one的属性Unit(单位) 但是有时有些用户的Unit属性为空 如果按单位查询用户的时候那些单位为null的用户就会被遗漏 如何调取呢?这本来是很简单的 但是我想当然的使用了Restriction eq 但是不行 后来看了手册才发现应该使用Restrictions isNul 下面是Test代码     /** *//**     * 为了获取一个unit为null的用户 如果传入一个null作为Uint实例则返回的结果总是      * 因为执行的SQL为 (select * ) from USER_INF this_ where this_ UNIT_ID=      * 这不是我们所期望的结果     */    @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     * 错误类型为 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());     cha138/Article/program/Java/ky/201311/28764

相关参考

知识大全 获取运行中的JVM系统属性

获取运行中的JVM系统属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取你的JVM系统环境

知识大全 hibernate连接查询总结

  假使现在有两张关联表customer和order一般情况下是一个customer可以对应多个order而一个order只能对应一个customer那么order中会有个customer对象作为属性

知识大全 Hibernate对多表关联查询

Hibernate对多表关联查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于公司项目的需

知识大全 list与iterator区别多双向关联配置

  对于Query接口的list()方法与iterator()方法来说都可以实现获取查询的对象但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了)而iterator(

知识大全 Hibernate对多个表进行关联查询实例

Hibernate对多个表进行关联查询实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下面列

知识大全 Hibernate属性查询简介

Hibernate属性查询简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文向大家介绍Hi

知识大全 Hibernate一对一 主键关联映射

Hibernate一对一主键关联映射  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 Hibernate多对多双向关联(xml配置)

Hibernate多对多双向关联(xml配置)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 Hibernate的延迟属性抓取

Hibernate的延迟属性抓取  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  再次犯了没有仔细

知识大全 应用数据库Hibernate对多表关联查询

Java相关:应用数据库Hibernate对多表关联查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下