0

我有这些实体:

@Entity
public class ActiveQuest {

    @OneToMany(orphanRemoval=true,cascade=CascadeType.ALL,mappedBy="activeQuest")
    @MapKey(name="task")
    private Map<String, ActiveTask> activeTasks = Maps.createHash();

}

@Entity
public class ActiveTask implements Serializable {

    @ManyToOne(optional=false)
    private ActiveQuest activeQuest;

}

ActiveTask要从ActiveQuest我当前执行的操作中删除一个:

final ActiveQuest aq = em.find(....);
aq.getActiveTasks().remove(task);

我可以用单个 JPQL 查询更快地(不获取)吗?

4

2 回答 2

0

是的。JPQL 规范甚至有一些例子

 DELETE FROM Publisher pub WHERE pub.revenue > 1000000.0
于 2012-11-14T13:04:49.887 回答
0

刚刚意识到,如果我只是从任务的侧面而不是任务的角度查看地图,我根本不需要考虑地图。

DELETE FROM ActiveTask t WHERE t.activeQuest = :quest AND t.task = :taskname

于 2012-11-14T13:08:47.357 回答