本文向大家介绍获取Hibernate关联关系的方法,可能好多人还不了解Hibernate关联关系,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
创新互联公司-专业网站定制、快速模板网站建设、高性价比五莲网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式五莲网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖五莲地区。费用合理售后完善,十载实体公司更值得信赖。
获取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());
- }
以上介绍获取Hibernate关联关系的方法。
网站题目:获取Hibernate关联关系的方法
网页地址:http://www.stwzsj.com/qtweb/news17/4617.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联