当前位置: 首页 > 知识库问答 >
问题:

从数据库中检索java对象列表而不是请求对象列表

邢杰
2023-03-14
import com.jackowiak.Domain.TurbinesData;
import com.jackowiak.Model.TurbineDataCSVReader;
import com.jackowiak.Utils.HibernateUtil;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import java.util.List;

public class TurbinesDaoBean {
    private static final Logger LOG = LoggerFactory.getLogger(TurbinesDaoBean.class);

    public List<TurbinesData> getTurbineDataFromDB(String turbineName) {

        LOG.info("Initializating DB connection to get turbine data");
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();

        Query query = session.createQuery("select windSpeed, turbinePower from TurbinesData where turbineName = :turbineName");
        query.setParameter("turbineName", turbineName);

        session.getTransaction().commit();
        List<TurbinesData> results = query.list();

        LOG.debug("Data for turbine " + turbineName + " collected successfully");
        return results;


    }
}
    @Entity
    @Table(name = "TurbinesData")
    public class TurbinesData {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "ID", unique = true, nullable = false)
        protected long id;

        @Column(nullable = false, length = 50, name = "Nazwa_turbiny")
        protected String turbineName;

        @Column(nullable = false, length = 20, name = "V_wiatru")
        protected Double windSpeed;

        @Column(nullable = false, length = 20, name = "Moc_turbiny")
        protected Double turbinePower;

        public TurbinesData() {
        }

        public TurbinesData(Double windSpeed, Double turbinePower) {
            this.windSpeed = windSpeed;
            this.turbinePower = turbinePower;
        }

        public TurbinesData(String turbineName, Double windSpeed, Double turbinePower) {
            this.turbineName = turbineName;
            this.windSpeed = windSpeed;
            this.turbinePower = turbinePower;
        } 
// getters and setters
} 

共有1个答案

艾奕
2023-03-14

JPQL更改为:

"FROM TurbinesData td WHERE td.turbineName = :turbineName"

然后使用typedquery

编辑:根据您的注释,您只想检索两个字段。您需要做:

"SELECT NEW package.to.TurbinesData(td.windSpeed, td.turbinePower) FROM TurbinesData td WHERE td.turbineName = :turbineName"
    null
 类似资料:
  • 和我的数据库的结构: 正如您所看到的,“pasos”是一个字符串列表,而“成分”是一个成分列表。 我无法找到的是如何从数据库中检索这些列表,因为我想获得一个接收列表。我尝试了很多事情,但都是错误的,因为它没有检索到任何列表。 我还知道FB DB可以使用HashMaps,但我不知道如何检索它们或从hashmap传递到列表,而不必遍历hashmap每个位置 那我该怎么办呢?提前谢谢你

  • 问题内容: 我有点迷茫,无法做到最快。我有一大堆具有基本变量属性的对象(带有getters / setters方法),我需要在此列表中进行搜索以找到列表中与给定参数匹配的对象 我已经找到了如何进行常规列表搜索的方法,但是我需要进行搜索,例如搜索列表中每个对象的调用getName()的结果的值,并获取结果与我的输入匹配的对象。 如下所示,第三个参数是方法调用的结果,第二个是我要查找的结果。 任何建议

  • 我有一个带有 RestAssured 的测试自动化宠物项目,我想让它在架构上开发,以便使代码可重用,测试脚本易于阅读。我有表示API的请求和响应的类,我也有DTO类。例如,下面是一个与终结点一起使用的类: 如您所见,有一个父类< code > EndpointTechnicalSteps ,我想用它来处理来自endpoint的响应。例如,我想在< code > endpoint technical

  • 我有一个sql select查询,它只从数据库中检索单个列(组)(即),我在对象数组列表中接收上面列表的结果 , 理想情况下,结果应该包含一个对象数组列表,但是当我检查时,结果的第0个索引包含String object而不是object数组。 但是,如果我使用多个列(假设在查询的select子句中有2个列),我可以看到结果的第0个索引作为对象数组,即 即使查询的select子句中只提到一列,如何获

  • 我有以下列表,里面是另一个列表,然后是字符串列表 <代码>列表 示例 除了执行嵌套循环并最终替换列表之外,还有更好的方法吗?也许有溪流?

  • 问题内容: 所有: 现在,我想获取一个标记了对象的列表。我该怎么办? 顺便说一句,如何在这里正式将变量称为“ a”?我知道到目前为止,它是对象的“对象标签”,但是我不知道它的术语是什么。 谢谢! 我为什么需要这个: 在其他语言(例如C)中,如果我重新分配a = 2,则a,b,c应该为2,但是在python中,没有诸如引用之类的东西,因此更改abc的所有值的唯一方法是a = b据我所知= = c =