休眠奇怪的createAlias行为

问题描述

| 我从Hibernate收到一个非常奇怪的行为。 如果执行以下查询,则一切正常。
Criteria crit = session.createCriteria( Message.class )
    .add( Restrictions.lt( \"sequenceReceived\",Long.valueOf( 10 ) ) )                               
    .createalias( \"this.commands\",\"cmd\",CriteriaSpecification.LEFT_JOIN);                        
\“按预期工作\”表示我获得Message的resultSet,在其中急切地获取了Message.commands。 但是,以下查询不能以相同的方式工作:
Criteria crit = session.createCriteria( Message.class )
    .add( Restrictions.lt( \"sequenceReceived\",CriteriaSpecification.LEFT_JOIN,Restrictions.eq( \"cmd.priority\",1 ) ));
添加的唯一更改是对OUTER LEFT JOIN ON子句的额外限制。现在生成sql变成 从消息this_中选择[...] LEFT OUTER JOIN命令cmd1_ on this_.unique_key = cmd1_.message_key AND cmd1_.priority = 1 在此this..sequence_received 问题在于,现在结果集仍然包含Message,但是message.commands却被延迟获取。 为什么会发生这种情况,有没有办法强迫这种装载迫切发生呢? 注意:我有一个createEntity,产生了相同的行为。     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)