我有这个:
@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;
这表明 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")},
uniqueConstraints=@UniqueConstraint(columnNames = { "plaga_id", "auxiliar_id" }))
private Collection<PlagaOEnfermedad> plagasAplicables;
我想根据“plagasApplicables.nombre”过滤我的组合。问题是,我应该如何编写 JPQL 查询来使用 Collection?。descriptionList(组合)上的“条件”表示JPQL中“WHERE”之后的句子,但不知道如何写......
例如,从我尝试过的其他问题中:
@DescriptionsList(depends="this.plaga", condition="? e.plagasAplicables.nombre 的成员", )
但我得到这个错误:
原因:org.hibernate.QueryException:非法尝试取消引用集合 [insectoaux0_.nombreCientifico.plagasAplicables] 与元素属性引用 [nombre] [从 org.openxava.recetas.model 中选择 e.nombreCientifico、e.nombreCientifico、e.nombreCientifico。 InsectoAuxiliar e WHERE :p0 MEMBER OF e.plagasAplicables.nombre]
任何帮助都感激不尽...
提前致谢,
何塞。