0

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 オブジェクトのリストを返さないのはなぜですか?

ありがとう!ロブ

4

1 に答える 1

2

ネイティブクエリが返すクラスを指定しないためです。追加の引数を取りながら、他の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());
于 2012-05-07T16:21:16.293 に答える