0

我正在尝试删除一组对象,但不知何故它们仍然存在。

List<Assignment> assignments = shift.getAssignments();
shift.getObjectContext().deleteObjects(assignments);
shift.getObjectContext().commitChanges();

执行 commitChanges 后,集合中唯一的赋值有这个值:

[{<ObjectId:Assignment, assignment_id=26067>; committed; // snipped for clarity

我以为在deleteObject()之后,状态会是DELETED;在 commitChanges() 之后,它不应保留在集合中。据此:http ://cayenne.apache.org/docs/3.0/persistent-object-lifecycle.html 。

我错过了什么?

编辑:更改代码以删除不同的数据对象,从而将更改传播到分配。

4

1 回答 1

1

如果您希望在删除时从集合中删除对象,您可以执行以下两项操作之一:

  • 通过遍历集合副本并调用“removeFromAssignments()”手动删除它们
  • 为 assignment -> shift 关系定义一个 NULLIFY 删除规则
于 2014-09-20T06:34:41.957 回答