将查询结果保存在自定义类中

时间:2018-09-24 03:41:08

标签: java jpa

我想将查询结果保存在列表中。但是,当我调试以查看列表时,它充满了Object [],而不是Conta类。

这是我的查询和Conta类。

ln=line.split()
for i in ln:
         n=''
         for x in i:
             if x in 'aeiou':
                 n+=x
         print ( n + "\t" + "1" )

3 个答案:

答案 0 :(得分:2)

AFAIK,您可以在JPA中使用构造函数表达式,尤其是因为已经具有匹配的构造函数:

Query query = em.createQuery("SELECT new com.mine.Conta(p.data, g.nome, c.nome, c.valor) FROM Pedidos p\n" ...

答案 1 :(得分:1)

您的Conta类不是Jpa @Entity-这就是为什么它不知道如何将结果映射到Java类的原因。正确注释Conta,为其指定主键,这是最简单的方法。

@Entity
public class Conta {
 @Id
 private long someID;

 @Column
 private float valor;

 @Column
 ... more columns (watch out for your Timestamp, probably needs @Temporal)

....getters and setters
}

按原样,您无法使用Jpa将Conta的实例保存到数据库中,这可能是您以后要做的一件事。

也请考虑以下答案:JPA : How to convert a native query result set to POJO class collection

答案 2 :(得分:0)

Leandro,还可以附加getResultList()的代码吗?根据我的经验,有两个潜在原因。第一,您的getResultList方法的返回类型错误。二,您的查询根本不起作用。