2011-08-12 46 views
0

我試圖做一個SELECT查詢發現該模型是SERIE 1選擇在JPA僅適用於ID PARAM

我有這個代碼嘗試和它的作品,但有必要把ID爲1的汽車如果我只做了marca1.setNombre_marca(「寶馬」);沒有把marca1.setId(1);它不起作用。

  marca marca1 = new marca(); 
      marca1.setNombre_marca("BMW"); 
      //only works if I set the ID to 1 
      marca1.setId(1); 

      Query query = em.createQuery("SELECT DISTINCT c.model FROM car c WHERE c.marcacoche = :param "); 
      query.setParameter("param",marca1); 
      List<String> resultados = query.getResultList(); 

任何形式的所有寶馬車在JPA沒有把ID?

在此先感謝! ;)

回答

0

只需在數據庫中搜索實體marca與字段Nombre_marca='BMW'然後再執行您的查詢。在這裏創建一個新的marca對象是個不錯的主意,它必須來自db。

+0

首先搜索實體marca寶馬,然後執行第二個查詢? – Rom

+0

然後我必須做2選擇查詢?一個創建marca實體和其他用marca搜索汽車? – Rom

+2

是的。如果你想通過make的名字進行搜索,你需要做一些事情,比如「SELECT DISTINCT c.model FROM car c WHERE c.marcacoche.nombreMarca =:param」,並將參數綁定到「BMW」。 JPA隨後會爲您加入。 –

相關問題