Jpa 如何使用合并

Jpa 如何使用合并,jpa,merge,ejb,managed,Jpa,Merge,Ejb,Managed,在我的Web层中,我显示了一个任务列表,每个任务都显示了它有多少任务错误。任务以以下方式在控制器类中获取: public List<Task> getTasks () { return taskEJB.findAll(); } @JoinColumn(name = "task_id", referencedColumnName = "id") @ManyToOne(optional = false) private Task task; 任务:deleteTaskErro

在我的Web层中,我显示了一个任务列表,每个任务都显示了它有多少任务错误。任务以以下方式在控制器类中获取:

public List<Task> getTasks () {
    return taskEJB.findAll();
}
@JoinColumn(name = "task_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Task task;
任务:deleteTaskErrors(TaskError TaskError)仅从列表中删除任务:

public void deleteTaskError (TaskError p_error) {
    taskErrorCollection.remove(p_error); // gives true
}
这很有效。Web层显示一个选项卡,其中包含所有任务以及任务错误数。删除TaskError后,该数字将下降1

但是。。。TaskErrorFacade的以下两种实现:删除(taskError)不起作用:Web层中的选项卡不会减去总任务错误计数的1(但是,它们会在数据库中删除):

以及:

为什么上面的两个实现不起作用

编辑:关系的映射也很重要。任务以以下方式映射到TaskError中:

public List<Task> getTasks () {
    return taskEJB.findAll();
}
@JoinColumn(name = "task_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Task task;

您是否为SLSB设置了默认事务属性?如何在web层中显示数据?在控制器代码中,什么是
taskEJB
,它的
findAll()
方法是如何定义的?是的,我的SLSB中的CMT(标准)事务。webtier将数据放入primefaces数据表中。在我的控制器代码中,taskEJB指的是TaskFacade:一个带有EntityManager的SLSB,用于执行一些CRUD。
@JoinColumn(name = "task_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Task task;