我有這樣的:JPQL查詢集合
@ManyToOne(fetch=FetchType.LAZY)
@Required
@NoFrame
@JoinColumn(name="plaga_id")
@DescriptionsList
private PlagaOEnfermedad plaga;
@Required
@ManyToOne(fetch=FetchType.LAZY)
@DescriptionsList(depends="this.plaga", condition="",
descriptionProperties="nombreCientifico")
private InsectoAuxiliar auxiliar;
這表明附配是InsectoAuxiliar.nombreCientififico組合的內容。另外,「depends」表示這個組合內容將加載到另一個組合選擇事件(另一個是「plaga」)。
的問題是,我不知道如何生成的條件,考慮到InsectoAuxiliar包含此:
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="insectos_plagas",
joinColumns={@JoinColumn(name="auxiliar_id",referencedColumnName="nombreCientifico")},
inverseJoinColumns={@JoinColumn(name="plaga_id",referencedColumnName="nombre")},
[email protected](columnNames = { "plaga_id", "auxiliar_id" }))
private Collection<PlagaOEnfermedad> plagasAplicables;
我要篩選我的組合取決於「plagasAplicables.nombre」。問題是,我應該如何編寫JPQL查詢以使用Collection ?.在descriptionList(組合)「條件」表示後「WHERE」在JPQL,但不知道怎麼寫呢?
例如,從其他的問題,我曾經嘗試這樣一句話:
@ DescriptionsList(取決於= 「this.plaga」,條件=, 「成員e.plagasAplicables.nombre嗎?」)
但我得到這個錯誤:
產生的原因:org.hibernate.QueryException:非法的意圖,使用元素屬性引用[nombre]取消引用集合[insectoaux0_.nombreCientifico.plagasAplicables] [SELECT e.no mbreCientifico,e.nombreCientifico,e.nombreCientifico從org.openxava.recetas.model.InsectoAuxiliar e其中:e.plagasAplicables.nombre的P0會員]
任何幫助將非常感激......
謝謝前進,
何塞。