1

私は、Java ee と永続化テクノロジについてはまったくの初心者です。動的クエリを作成しようとしています。詳細:
データ テーブル (' newsactivites ') があり、次のようになります。

id   type
4    UploadVideo
4    CreateBlog
1    UploadPicture
10   UploadVideo
10   CreateBlog

さらに列挙型があります:

public enum Type {
      UploadVideo("show.uploadedVideo"),
      UploadPicture("show.uploadedPicture"),
      CreateBlog("show.createdBlog");
}

そこで、次のようなメソッドを書きたいと思います。

private List<Type> activities=new ArrayList<Type>();

@CollectionElements()
@Column(name="type")
@Enumerated(EnumType.STRING)
@JoinTable(name = "newsactivities", joinColumns = { @JoinColumn(name = "id") })
public List<Type> getActivities() {
      return activities;
}

しかし、特定の時間に 1 つの ID のアクティビティだけを返したい:

public List<Type> getActivities(int id) { }

どんな助けでも大歓迎です!

4

2 に答える 2

0

私があなたのモデルを正しく読んだ場合(よくわかりません)、外部キーを持つエンティティクラスNewsactivities(クラス内)が必要です。次に、 (ではなく)が必要になります。Newsactivities.classtypeList<Newsactivities>List<Types>

public List<Type> getActivities(int id) {
    TypedQuery<Newsactivities> tq = em.createQuery(
      "SELECT n FROM Newsactivities n WHERE n.type=:type, Newsactivities.class);
    tq.setParameter("type", id);
    return(tq.getResultList());
}
于 2012-05-28T19:34:34.683 に答える