Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:getCurrentSession()做什么?(奇怪的语法)_Java_Spring_Hibernate - Fatal编程技术网

Java:getCurrentSession()做什么?(奇怪的语法)

Java:getCurrentSession()做什么?(奇怪的语法),java,spring,hibernate,Java,Spring,Hibernate,这是我在DAO类中遇到的一行代码: pages.addAll((List<Page>)getCurrentSession() .createCriteria(Page.class) .add(Restrictions.eq("path", pagePath)) .setMaxResults(1).list()); 我从未见过方法调用在一组括号之后,中间没有点。它只是一个可选的不同语法,还是除了让会话与列表关联之外,它还做了什么 注意:

这是我在DAO类中遇到的一行代码:

pages.addAll((List<Page>)getCurrentSession()
        .createCriteria(Page.class)
        .add(Restrictions.eq("path", pagePath))
        .setMaxResults(1).list());
我从未见过方法调用在一组括号之后,中间没有点。它只是一个可选的不同语法,还是除了让会话与列表关联之外,它还做了什么

注意:这里使用Java/Spring和Hibernate@Transactional business


编辑:更新到完整的代码行,没有意识到它的重要性。大多数情况下,我是被没有圆点的方法语法抛出的。

很可能你错过了完整的一行

(List<Object>) getCurrentSession().createCriteria(Page.class).list();
1页是一个列表

二,

在这里,criteria对象上的list方法返回一个对象列表,而在这里,您将把它们转换回页面对象,因为您知道它们是页面对象

是要获取的条件

3 addAll方法将所有结果添加到页面

getCurrentSession().createCriteria(Page.class)
    .add(Restrictions.eq("path", pagePath))
    .setMaxResults(1).list()
返回一个列表,然后将其强制转换为

List<Page>

然后,将强制转换的对象传递给page.addAll方法。

这是完整的语句吗?粘贴完整的代码行。可能是ListgetCurrentSession.createQuerySELECT******.list刚刚强制转换返回的列表。它将getCurrentSession的返回值强制转换为对象列表…请查看JLS中有关强制转换的部分:
getCurrentSession().createCriteria(Page.class)
    .add(Restrictions.eq("path", pagePath))
    .setMaxResults(1).list()
List<Page>