Java:getCurrentSession()做什么?(奇怪的语法)
这是我在DAO类中遇到的一行代码: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()); 我从未见过方法调用在一组括号之后,中间没有点。它只是一个可选的不同语法,还是除了让会话与列表关联之外,它还做了什么 注意:
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>