知识大全 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系统属性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取你的JVM系统环境
假使现在有两张关联表customer和order一般情况下是一个customer可以对应多个order而一个order只能对应一个customer那么order中会有个customer对象作为属性
Hibernate对多表关联查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于公司项目的需
对于Query接口的list()方法与iterator()方法来说都可以实现获取查询的对象但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了)而iterator(
Hibernate对多个表进行关联查询实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 下面列
Hibernate属性查询简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文向大家介绍Hi
Hibernate一对一主键关联映射 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Hibernate多对多双向关联(xml配置) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Hibernate的延迟属性抓取 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 再次犯了没有仔细
Java相关:应用数据库Hibernate对多表关联查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下