我正在尝试加入两个表,但我无法找到正确的JPQL查询。
这是我所拥有的两个表的简易版本,两个id_persona列之间有一个FK。
TABLE macchine
marca (String) -- targa (String) -- id_persona (int)
TABLE persone
nome (String) -- id_persona (int)
我想要的是在id_persona上加入他们,但是我无法猜测查询sintax和谷歌没有任何帮助。
例如,我怎样才能将“id_persona”链接的每个“targa”与给定的“nome”相关联?
假面
@Entity
public class Persone implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_persona")
private int idPersona;
private String cognome;
private Timestamp data_nascita;
private String nome;
@OneToMany(mappedBy="persona")
@JoinColumn(name="id_persona")
private Set<Macchine> macchina;
}
-
MACCHINE
@Entity
public class Macchine implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_persona")
private int idPersona;
private String targa;
private String marca;
@ManyToOne(fetch=FetchType.LAZY)
private Persone persona;
}
-
查询
public static List<Macchine> selectPM(){
Query selectAll = em.createQuery("SELECT m FROM Macchine m");
@SuppressWarnings("unchecked")
List<Macchine> jObj = selectAll.getResultList();
return jObj; //Join Objective
}
我编辑了答案,因为我在项目中做了一些更改。我有新链接的表格。
这是我现在遇到的错误:
Error compiling the query [SELECT m.id_persona, m.targa, m.marca FROM Macchine m], line 1, column 9: unknown state or association field [id_persona] of class [model.Macchine]