HibernateCallback与Java 8 lambda代码 如何使用Java8Lambda正确重构此示例?

HibernateCallback与Java 8 lambda代码 如何使用Java8Lambda正确重构此示例?,java,hibernate,lambda,java-8,refactoring,Java,Hibernate,Lambda,Java 8,Refactoring,我试图在以下示例中使用Java 8 lambda: hibernateTemplate.execute(新的HibernateCallback(){ @凌驾 公共HumanMainInfo doInHibernate(会话会话)引发HibernateeException{ CriteriaBuilder=session.getCriteriaBuilder(); CriteriaQuery=builder.createQuery(HumanMainInfo.class); Root sysUs

我试图在以下示例中使用Java 8 lambda:

hibernateTemplate.execute(新的HibernateCallback(){
@凌驾
公共HumanMainInfo doInHibernate(会话会话)引发HibernateeException{
CriteriaBuilder=session.getCriteriaBuilder();
CriteriaQuery=builder.createQuery(HumanMainInfo.class);
Root sysUserRoot=query.from(sysusermainfo.class);
Join-humanJoin=sysUserRoot.Join(“human”,JoinType.INNER);
谓词idCondition=builder.equal(sysUserRoot.get(“id”),userId);
query.where(idCondition).选择(humanJoin);
返回session.createQuery(query.uniqueResult();
}
});
hibernateTemplate.execute(会话->{
CriteriaBuilder=session.getCriteriaBuilder();
CriteriaQuery=builder.createQuery(HumanMainInfo.class);
Root sysUserRoot=query.from(sysusermainfo.class);
Join-humanJoin=sysUserRoot.Join(“human”,JoinType.INNER);
谓词idCondition=builder.equal(sysUserRoot.get(“id”),userId);
query.where(idCondition).选择(humanJoin);
返回session.createQuery(query.uniqueResult();
});
hibernateTemplate.execute(new HibernateCallback<HumanMainInfo>() {
    @Override
    public HumanMainInfo doInHibernate(Session session) throws HibernateException {
        CriteriaBuilder builder = session.getCriteriaBuilder();
        CriteriaQuery<HumanMainInfo> query = builder.createQuery(HumanMainInfo.class);
        Root<SysUserMainInfo> sysUserRoot = query.from(SysUserMainInfo.class);
        Join<SysUserMainInfo, HumanMainInfo> humanJoin = sysUserRoot.join("human", JoinType.INNER);
        Predicate idCondition = builder.equal(sysUserRoot.get("id"), userId); 
        query.where(idCondition).select(humanJoin);
        return session.createQuery(query).uniqueResult();
    }
});
hibernateTemplate.execute(session -> {
     CriteriaBuilder builder = session.getCriteriaBuilder();
     CriteriaQuery<HumanMainInfo> query = builder.createQuery(HumanMainInfo.class);
     Root<SysUserMainInfo> sysUserRoot = query.from(SysUserMainInfo.class);
     Join<SysUserMainInfo, HumanMainInfo> humanJoin = sysUserRoot.join("human", JoinType.INNER);
     Predicate idCondition = builder.equal(sysUserRoot.get("id"), userId); 
     query.where(idCondition).select(humanJoin);
     return session.createQuery(query).uniqueResult();
});