解决 Ljava.lang.Object

Resolve Ljava.lang.Object

Ljava.lang.Object是什么意思?我有这样使用 JPQL 制作的列表:

public 列出 findLast5Articles() {

    return entityManager
            .createQuery("SELECT a.title, a.created, SUBSTRING(a.content, 1, 200) " +
                    "FROM " +Article.class.getName() +" a ORDER BY a.created DESC")
            .setMaxResults(5)
            .getResultList();
}

当我尝试在 json 上显示它时,它只显示 Ljava.lang.Object 五次。我该怎么做才能让它正确?

为了在 JPA 中获取类型化结果集,您需要指定实体类型。在您的示例中,您可以使用:

return entityManager.createQuery("SELECT a.title, a.created, SUBSTRING(a.content, 1, 200) FROM Article a ORDER BY a.created DESC", Article.class).setMaxResults(5).getResultList();

在此处查看 java 持久性文档:

https://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html

具体来说createQuery(String qlString) and createQuery(String qlString, Class resultClass)

的区别