gpt4 book ai didi

java - 为什么这个 JPA 查询不返回我的特定类的列表?

转载 作者:行者123 更新时间:2023-12-02 07:48:47 26 4
gpt4 key购买 nike

我有一个 JPA 对象:

@Entity
@Table(name="WF_GROUP")
public class Group {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String groupName;
private long parentId;

/* ... */

}

我有一个使用此方法的 GroupDAO:

public List<Group> getAllGroups() {
List<Group> groups = new ArrayList<Group>();
String query = "select * from WF_GROUP";
Query q = getEntityManager().createNativeQuery(query);
groups.addAll( q.getResultList() );
return groups;
}

问题是 q.getResultList() 返回一个 Object 类型的结果列表,而不是包含每个属性的对象数组。

为什么 q.getResultList() 不返回 Group 对象的列表?

谢谢!罗布

最佳答案

因为您没有指定 native 查询应返回哪个类。看看其他的createNativeQuery方法,接受额外的参数。

请注意,使用 JPA 的目的是使用对象而不是数据库表。 JPQL 就是为此而存在的。您应该使用以下代码:

String query = "select group from Group group"; // this is JPQL
TypedQuery<Group> q = getEntityManager().createQuery(query, Group.class);
groups.addAll(q.getResultList());

关于java - 为什么这个 JPA 查询不返回我的特定类的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com