两个表之间的JPQL JOIN

时间:2017-05-09 12:23:50

标签: java jpa join jpql

我正在尝试加入两个表,但我无法找到正确的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]

0 个答案:

没有答案