0

私のデータベース:

WorkflowProcess
id | name

WorkflowProcessToWorkflowProcess
ancestor | descendent

root を照会する必要がありますWorkflowProcess。このテーブル構造を使用して、次のようなクエリを実行しようとしていますSELECT * FROM WorkflowProcess WHERE id NOT IN (SELECT DISTINCT descendent FROM WorkflowProcessToWorkflowProcess)

私のWorkflowProcessエンティティ:

private Collection<WorkflowProcessEntity> workflowProcesses;

@JoinTable(name = "Workflow_Process_to_Workflow_Process", joinColumns = {
        @JoinColumn(name = "ancestor", referencedColumnName = "id")}, inverseJoinColumns = {
        @JoinColumn(name = "descendent", referencedColumnName = "id")})
@ManyToMany()
public Collection<WorkflowProcessEntity> getWorkflowProcesses() {
    return workflowProcesses;
}

public void setWorkflowProcesses(Collection<WorkflowProcessEntity> workflowProcesses) {
    this.workflowProcesses = workflowProcesses;
}

HQLでこれを達成することは可能ですか?

4

1 に答える 1

1

次のようなことを試してください:

select child 
from WorkflowProcess parent right join parent.workflowProcesses child 
where parent is null
于 2013-04-11T12:41:04.503 に答える