java - JPQL 查询 - java.lang.String 无法转换为 model.xxx

标签 java sql jpa jpql

实际完全错误

java.lang.ClassCastException: java.lang.String cannot be cast to model.Persone

--

大家好,我是 JPQL 的新手,我正在尝试编写一个非常简单的 JPQL 查询,但不幸的是。

我有一个名为 persone 的数据库表,其中包含一个 String nome 列。

我要翻译的查询是 SELECT Nome FROM persone

--

这是实体

@Entity
public class Persone implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id_persona")
    private int idPersona;

    private String cognome;

    private Timestamp data_nascita;

    @Column(name="nome")
    private String nome;
}

--

这是查询执行方法的片段。我试图修改它,将返回值(以及其他所有内容)设置为字符串而不是列表,但是我无法设法获得正确的方法而不是 getResultList()。

public static List<Persone> selectAllPersone(){
    Query selectAll = em.createQuery("SELECT p FROM Persone p");
    @SuppressWarnings("unchecked")
    List<Persone> list = selectAll.getResultList();
    return list;
}

--

这是我在编码方面的失败

Query selectAll = em.createQuery("SELECT p.nome FROM Persone p");

这个错误可能是由于什么导致的?

最佳答案

您选择的名称 (p.nome) 是一个字符串,因此您将得到一个字符串。

如果要返回整个人,请选择整个人(SELECT p FROM Personne p)。

关于java - JPQL 查询 - java.lang.String 无法转换为 model.xxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43865344/

相关文章:

java - 如何以编程方式在 ListActivity 上查找 TextView

java - 如何在 RxJava 2 中组合动态数量的 Observable?

sql - 递归 CTE Material list

php - MySQL SELECT 或 SUBSELECT 与 PHP

java - 将外部属性添加到实体,就好像它们是自己的属性一样

java - Zebra Android SDK 中的错误 "ACCESS_TAG_MEMORY_OVERRUN_ERROR"是什么意思以及如何修复它?

sql - 如何重命名 SQLite 中的索引?

java - 使用 JPA 在 jpql 中按时间戳进行分组

jpa - CriteriaQuery 中的条件左连接

java - 将 Spark 流输出写入套接字