Java 多对一搜索查询
我在JPA中面临一个关于多对一关系的问题。我现在遇到的问题是使用where子句获取数据Java 多对一搜索查询,java,jakarta-ee,jpa,persistence,many-to-one,Java,Jakarta Ee,Jpa,Persistence,Many To One,我在JPA中面临一个关于多对一关系的问题。我现在遇到的问题是使用where子句获取数据 技能课程: @Id private long skillsID; @Basic private String longDescription; @Basic private String shortDescription; @Basic private String colOrder; @Basic private String
技能
课程:
@Id
private long skillsID;
@Basic
private String longDescription;
@Basic
private String shortDescription;
@Basic
private String colOrder;
@Basic
private String isActive;
@Basic
private String changeDate;
@ManyToOne(fetch=FetchType.EAGER)
private Category category;
第二个实体是:
类别
类别:
@Id
private long categoryID;
@Basic
private String name;
@Basic
private String colOrder;
@Basic
private String isActive;
@Basic
private String changedDate;
@OneToMany(mappedBy = "category")
private Collection<Skills> skills;
JPA代码为:
Query q = em .createQuery("SELECT s.longDescription from Skills s, Category c "+
"where s.categoryID = c.categoryID");
那么,如何根据外键从
技能
到类别
获取数据?在技能
实体中没有字段类别ID
只需使用查询
中的类别
字段即可:
Query q = em .createQuery("SELECT s.longDescription from Skills s, Category c " +
"WHERE s.category = c");
没有必要对我们大喊大叫。
Query q = em .createQuery("SELECT s.longDescription from Skills s, Category c " +
"WHERE s.category = c");