0

我正面临一个让我陷入困境的问题。我有课文章:

    @Entity
    @Table(name = "Articles")
    public class Article implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="article_id")
    private Long id;

    @Column(name="a_name")
    private String name;

    @Column(name="a_content")
    private String content;

    @OneToMany
    @Column(name="a_tag")
    private Collection <Tags> tag;



  @Entity
  @Table(name = "Tags")
  public class Tags implements Serializable {
  private static final long serialVersionUID = 1L;
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name="tag_id")
  private Long tag_id;

  @Column(name="tag_name",nullable=false)
  private String tag_name;

  @Column(name="tag_descr")
  private String tag_descr;

  //position 0 - supertag
  //position 1 - subsupertag
  //position 2 - subtags
  //Collection limited to 3 elements.(3 tags at most, necessaryly Super,subsuper,subtag
  @Column(name="super_tags")
  @OneToMany
  private Collection<Tags> supertags = new ArrayList<Tags>(3);

  //0-supertag 1-subsupertag 2- subtags
  @Column(name="tag_type")
  private int tag_type;

我的标签系统是这样的,我有 Supertag、subsuprttag 和 subtag。Supertag 是 subsupertag 和 subtag 的 parent, subsupertag 是 subtag 的 parent。每篇文章都有super、subsuper和sub标签。

现在,我只想从数据库中获取具有特定标签的文章,但不知道如何引用,例如 Collection 标签中的元素 2(按名称或位置),(这将是子标签)。

final String q = "SELECT f FROM Article f WHERE f.a_tag= ..I m lost here ...
EntityManager em;
em.createQuery(q).getResultList();

我希望我的问题足够清楚。我尽力了))谢谢。

4

1 回答 1

0

您可以加入标签以在 JPQL 中访问它们,

见, http ://en.wikibooks.org/wiki/Java_Persistence/JPQL#JOIN

至于Tag的类型,该类型是如何存储在数据库中的呢?

于 2013-04-01T14:05:44.050 回答