Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 如何在hibernate中将条件结果设置为另一个pojo类变量_Java_Mysql_Hibernate_Spring Mvc_Criteria - Fatal编程技术网

Java 如何在hibernate中将条件结果设置为另一个pojo类变量

Java 如何在hibernate中将条件结果设置为另一个pojo类变量,java,mysql,hibernate,spring-mvc,criteria,Java,Mysql,Hibernate,Spring Mvc,Criteria,我使用条件从数据库获取数据,在条件中我使用groupProperty()和sum() 我想知道我想把这个结果更新到我的另一个表中。我知道的方法是将结果从这里设置到另一个pojo类,然后更新到另一个表中。但我想知道有没有其他方法可以做到这一点?如果有,请建议我 这是我的pojo类Post.java 这是我的道课 @SuppressWarnings({ "unchecked", "rawtypes" }) public List<Post> getPostList() throws Ex

我使用条件从数据库获取数据,在条件中我使用groupProperty()和sum()

我想知道我想把这个结果更新到我的另一个表中。我知道的方法是将结果从这里设置到另一个pojo类,然后更新到另一个表中。但我想知道有没有其他方法可以做到这一点?如果有,请建议我

这是我的pojo类Post.java

这是我的

@SuppressWarnings({ "unchecked", "rawtypes" })
public List<Post> getPostList() throws Exception {
session = sessionFactory.openSession();
    Criteria cr = session.createCriteria(Post.class);
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.sum("val"));
    projList.add(Projections.groupProperty("userId"));
    cr.setProjection(projList);
    List postList = cr.list();
    tx = session.getTransaction();
    session.beginTransaction();
    tx.commit();
    return postList;
}
}

当您使用criteria的setResultTransformers方法并将别名添加到ProjectionList的add方法时,您应该会得到类型Result的列表

public List<Result> getResultList() throws Exception {
    session = sessionFactory.openSession();
        Criteria cr = session.createCriteria(Post.class);
        ProjectionList projList = Projections.projectionList();
        projList.add(Projections.sum("val"), "topValue");
        projList.add(Projections.groupProperty("userId"), "uid");
        cr.setProjection(projList);
        cr.setResultTransformers(Transformers.aliasToBean(Result.class)
        List postList = cr.list();
        tx = session.getTransaction();
        session.beginTransaction();
        tx.commit();
        return postList;
    }
    }
public List getResultList()引发异常{
session=sessionFactory.openSession();
Criteria cr=session.createCriteria(Post.class);
ProjectionList projList=Projections.ProjectionList();
项目列表添加(预测总额(“val”),“topValue”);
projList.add(Projections.groupProperty(“userId”),“uid”);
cr.setProjection(项目列表);
cr.setResultTransformers(Transformers.aliasToBean(Result.class)
List postList=cr.List();
tx=session.getTransaction();
session.beginTransaction();
tx.commit();
返回postList;
}
}

现在,我应该怎么做才能将这些值插入到另一个表中?使用结果类的实体注释,就像用于post类一样。然后,您必须使用hibernate持久化服务持久化getResultList方法的结果。我想在结果设置为结果类后,使用id为uid的值更新一个表,但我确实这样做了我不知道怎么做请建议meSorry在这方面无能为力,最好再提出一个问题。
public class Result {

private long topValue;
private long uid;
public long getTopValue() {
    return topValue;
}
public void setTopValue(long topValue) {
    this.topValue = topValue;
}
public long getUid() {
    return uid;
}
public void setUid(long uid) {
    this.uid = uid;
}
}
public List<Result> getResultList() throws Exception {
    session = sessionFactory.openSession();
        Criteria cr = session.createCriteria(Post.class);
        ProjectionList projList = Projections.projectionList();
        projList.add(Projections.sum("val"), "topValue");
        projList.add(Projections.groupProperty("userId"), "uid");
        cr.setProjection(projList);
        cr.setResultTransformers(Transformers.aliasToBean(Result.class)
        List postList = cr.list();
        tx = session.getTransaction();
        session.beginTransaction();
        tx.commit();
        return postList;
    }
    }