我面临的问题让我陷入困境。 我有课文章:
@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的父级,subsupertag是subtag的父级。 每篇文章都有super,subsuper和sub标签。
现在,我想只从数据库中获取具有特定标记的文章,但不知道如何引用,例如,集合标记中的元素2(按名称或位置),(这将是子标记) 。
final String q = "SELECT f FROM Article f WHERE f.a_tag= ..I m lost here ...
EntityManager em;
em.createQuery(q).getResultList();
我希望我的问题足够明确。我尽了最大的努力))谢谢你。
答案 0 :(得分:0)
您可以加入标签以在JPQL中访问它们,
见, http://en.wikibooks.org/wiki/Java_Persistence/JPQL#JOIN
对于Tag的类型,如何将类型存储在数据库中?