私は次のエンティティを持っています
@Entity
public class Task {
private List<TaskParameter> taskParameters = Collections.emptyList();
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "taskParameters", joinColumns = @JoinColumn(
name = "task_id"))
public List<TaskParameter> getTaskParameters() {
return taskParameters;
}
}
TaskParameterエンティティは、以下に定義されている埋め込み可能オブジェクトです。
@Embeddable
public class TaskParameter {
private String name;
private String value;
}
このメソッドでSearchAPIを使用しています
@Transactional(readOnly = true)
public List<Task> getTaskByRequisitionId(String requisitionId) {
List<Task> tasks;
Search search = new Search();
search.addFilterAll("taskParameters",Filter.equal("value", requisitionId));
tasks = taskDao.search(search);
return tasks;
}
しかし例外を取得します
[INFO] 2013-02-28 10:20:06,641 [btpool0-14] ERROR org.hibernate.hql.PARSER - <AST>:0:0: unexpected end of subtree
[INFO] 2013-02-28 10:20:06,642 [btpool0-14] ERROR org.hibernate.hql.PARSER - <AST>:0:0: expecting "from", found '<ASTNULL>'
[INFO] org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree [select _it from com.planetsystems.procnet.model.jbpm.Task _it where not exists (from _it.taskParameters _it1 where not (_it1.value = :p1 and _it1.value is not null))]
私はgenericdao1.1.0とhibernate3.5.6-Finalを使用しています