我有一个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对象列表?
谢谢! 罗布
答案 0 :(得分:3)
因为您没有指定本机查询应该返回哪个类。看看其他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());