这是我在DAO类中遇到的一行:
pages.addAll((List<Page>)getCurrentSession()
.createCriteria(Page.class)
.add(Restrictions.eq("path", pagePath))
.setMaxResults(1).list());
我从未在一组括号后面看到方法调用,两者之间没有点。它只是一个可选的不同语法,还是除了让session
与List
相关联之外还做了什么?
(注意:在这里使用Java / Spring和Hibernate @Transactional
业务)
答案 0 :(得分:2)
简言之,声明
getCurrentSession().createCriteria(Page.class)
.add(Restrictions.eq("path", pagePath))
.setMaxResults(1).list()
返回List
,然后将其转换为
List<Page>
然后,将转换的对象传递给page.addAll()
方法。
答案 1 :(得分:1)
很可能你错过了完整的一行
(List<Object>) getCurrentSession().createCriteria(Page.class).list();
从数据库返回Page
个对象(pojo)的列表。
你的行
pages.addAll((List<Page>)getCurrentSession().createCriteria(Page.class)
.add(Restrictions.eq("path", pagePath))
.setMaxResults(1).list());
1)pages
是一个列表
2)
(List<Page>)getCurrentSession()
.createCriteria(Page.class)
.add(Restrictions.eq("path", pagePath))
.setMaxResults(1).list()
此处标准对象上的list()
方法返回一个对象列表,在这里您将它们转换回Page对象,因为您知道它们是Page对象
是获取
的标准 3)addAll
方法将所有结果添加到pages