我在这里阅读hibernate条件文件:
http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Criteria.html
我曾多次使用它,我通常使用 createAlias()来连接表,这里他们提供了两种方法来进行连接并从表中获取数据,有:
List cats = session.createCriteria(Cat.class)
.createCriteria("kittens")
.add( Restrictions.like("name", "Iz%") )
.list();
List cats = session.createCriteria(Cat.class)
.createAlias("kittens", "kit")
.add( Restrictions.like("kit.name", "Iz%") )
.list();
所以我无法区分.createCriteria("kittens")
和createAlias("kittens", "kit")
之间的差异,或者我可能无法获得此代码的确切做法,有人可以帮助我清除我的困惑。
答案 0 :(得分:4)
唯一的区别是
CreateCriteria
还有2个 没有别名参数的重载,这种差异早已消失 最新版本。但基本上应用程序是轻微的 它的用法不同,
CreateCriteria
使用它的关系 从父级映射到子级,同时使用CreateAlias
定义它们 使用来自根目录的自定义别名。
从here了解详情。
答案 1 :(得分:2)
主要区别在于Criterias' createCriteria()
创建并返回子标准(新标准对象)。如果要为子查询创建标准,这非常有用。
以下是有关其返回类型的文档说明
返回:
创建的“子标准”
Criteria's CreateAlias()
返回现有条件对象
以下是有关其返回类型的文档说明
返回:
这个(方法链接)