我想用一组非实体进行JPQL查询.这是我的表实体:
@Entity
@Table(name = "ct_table")
public class Table {
...
@CollectionOfElements(fetch = FetchType.EAGER)
@JoinTable(name = "ct_table_result", joinColumns = @JoinColumn(name = "tableId"))
@MapKey(columns = { @Column(name = "label") })
@Column(name = "value")
private Map<String, String> tableResults;
...
Run Code Online (Sandbox Code Playgroud)
然后我尝试做这样的查询
select count(*) from table where table.tableResults['somekey'].value='somevalue'
Run Code Online (Sandbox Code Playgroud)
但我得到以下异常:
Cannot create element join for a collection of non-entities!
Run Code Online (Sandbox Code Playgroud)
有什么建议??
谢谢你的时间
编辑:
我使用JPA 1和hibernate 3.3.JBoss 5中的默认库
在JPA 2规范(第139页)定义KEY()和VALUE()功能,以访问该密钥和地图值元素集合中的值:
select count(t.id) from Table t
where KEY(t.tableResults) = 'somekey' and VALUE(t.tableResults) = 'somevalue'
Run Code Online (Sandbox Code Playgroud)